Sobes.tech
Назад к вопросам
Middle+
2

Какие типы данных существуют в JavaScript? Чем примитивы отличаются от объектов? Как они хранятся в памяти?

Компании, где спрашивали
ООО Делай мебель

Ответ от нейросети

sobes.tech AI

В JavaScript существуют следующие типы данных:

Примитивы:

  • Number (числа)
  • String (строки)
  • Boolean (логические значения)
  • Null (отсутствие значения)
  • Undefined (неопределённое значение)
  • Symbol (уникальные идентификаторы)
  • BigInt (целые числа произвольной длины)

Объекты:

  • Object (общий объект)
  • Array (массивы)
  • Function (функции)
  • Date, RegExp и другие встроенные объекты

Отличия примитивов от объектов:

  • Примитивы хранятся непосредственно в стеке и передаются по значению.
  • Объекты хранятся в куче, а переменная содержит ссылку на объект.
  • Примитивы неизменяемы (immutable), объекты — изменяемы (mutable).

Хранение в памяти:

  • Примитивы занимают фиксированное место и быстро доступны.
  • Объекты хранятся в куче, переменные содержат указатели на них.

Например:

let a = 5;       // a хранит значение 5
let b = a;       // копия значения
b = 10;          // a не изменится

let obj1 = {x:1};
let obj2 = obj1;  // obj2 и obj1 ссылаются на один объект
obj2.x = 2;      // obj1.x тоже изменится

Таким образом, примитивы — простые значения, объекты — сложные структуры с ссылочной семантикой.