Примитивные и ссылочные типы данных в JavaScript

В JavaScript переменные — фундаментальные строительные блоки, хранящие и изменяющие значения. Переменная — это запись в памяти с определенным типом. Все типы данных делятся на две группы: примитивные и ссылочные. Различие заключается в способе хранения значений.

Типы данных

В JavaScript шесть примитивных типов:

  • Строка (String): Например, "Hello, world!"
  • Булево (Boolean): true или false
  • Число (Number): 0, -5, 7, 5.2, 10.7 и т.д.
  • Null: null (отсутствие значения)
  • Undefined: undefined (неинициализированная переменная)
  • Символ (Symbol): Например, Symbol.iterator (введен в ES6).

Существует один ссылочный тип: Объект (Object). Массивы и функции — это объекты.

Хранение примитивных типов

Примитивные типы хранятся непосредственно в памяти: каждое значение занимает отдельную ячейку. Например, строка "Hello, world!" хранится как последовательность битов в одной ячейке, true — в другой. Изменение примитивного типа создает новое значение в новой ячейке.

Хранение ссылочных типов

Ссылочные типы (объекты) хранятся иначе. Значение объекта хранится в одной ячейке, а переменная содержит не само значение, а указатель на эту ячейку. Несколько переменных могут ссылаться на один объект.

Изменение значений

Изменение примитивного типа создает новое значение. Изменение свойства объекта отражается на всех переменных, ссылающихся на него, так как они указывают на одну ячейку памяти.

Копирование переменных

При копировании переменной, содержащей объект, создается новая переменная с новым указателем на тот же объект. Изменение свойства через одну переменную изменит его для всех.

В JavaScript единственный ссылочный тип — Object. Примитивные типы хранятся непосредственно, а ссылочные — через указатели. Это важно для работы с данными в JavaScript.

Что будем искать? Например,программа