Middle+
Дархостҳои маълумоти JavaScript кадомҳоянд? Чӣ гуна primitives аз objects фарқ мекунанд? Онҳо дар хотира чӣ гуна нигоҳ дошта мешаванд?
sobes.tech AI
Ҷавоб аз 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 тоже изменится
Таким образом, примитивы — простые значения, объекты — сложные структуры с ссылочной семантикой.