В JavaScript данные делятся на примитивные типы и объекты.
Примитивные типы:
- String: Последовательность символов. Неизменяемый.
- Number: Числа, включая целые и с плавающей точкой, а также
Infinity
, -Infinity
и NaN
.
- Boolean: Логическое значение (
true
или false
).
- Null: Специальное значение, представляющее отсутствие объекта.
- Undefined: Значение переменной, которой не было присвоено значение.
- Symbol: Уникальный и неизменяемый примитивный тип, используемый для идентификаторов свойств объекта.
- BigInt: Целые числа произвольной длины.
Объекты:
- Object: Коллекция пар ключ-значение. Изменяемый. Примеры: массивы, функции, регулярные выражения, даты.
Основные различия:
- Изменяемость (Mutability): Примитивные типы неизменяемы, т.е. нельзя изменить их значение напрямую. При попытке изменения создается новая копия. Объекты изменяемы, их свойства можно добавлять, удалять и изменять.
- Передача по значению/ссылке: Примитивные типы передаются по значению (копируется само значение). Объекты передаются по ссылке (копируется ссылка на место в памяти, где хранится объект).
- Сравнение: Примитивные типы сравниваются по значению. Объекты сравниваются по ссылке (две переменные ссылаются на один и тот же объект в памяти).
javascript