Sobes.tech
Middle+

Koje vrste podatka postoje u JavaScript-u? Čime se primitivni tipovi razlikuju od objekata? Kako se oni čuvaju u memoriji?

sobes.tech АИ

Одговор од АИ

В 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 тоже изменится

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