к примитивам относятся Number, String, Boolean, Symbol, BigInt, Undefined, Null объект — составной тип для коллекций и структур данных функция является объектом первого класса оператор typeof различает примитивы и объекты примитивные значения — неизменяемы, объекты можно изменять BigInt предназначен для представления больших целых чисел Symbol создаёт уникальные неизменяемые идентификаторы практическая роль: тип определяет доступные операции, преобразования и поведение кода во время runtime
Какие типы данных существуют в JavaScript?
к примитивам относятся Number, String, Boolean, Symbol, BigInt, Undefined, Null объект — составной тип для коллекций и структур данных функция является объектом первого класса оператор typeof различает примитивы и…
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Типы данных JavaScript
- к примитивам относятся Number, String, Boolean, Symbol, BigInt, Undefined, Null
- объект — составной тип для коллекций и структур данных
- функция является объектом первого класса
- оператор typeof различает примитивы и объекты
- примитивные значения — неизменяемы, объекты можно изменять
- BigInt предназначен для представления больших целых чисел
- Symbol создаёт уникальные неизменяемые идентификаторы
- практическая роль: тип определяет доступные операции, преобразования и поведение кода во время runtime
Подробный ответ
Основной ответ
В JavaScript предусмотрено 7 основных типов данных. Их принято разделять на примитивные и объектные. Примитив хранит само значение и не изменяется, а объект представляет коллекцию значений либо более сложную структуру.
Основные типы данных:
- Undefined — состояние переменной, которой ещё не присвоили значение. При создании переменная изначально содержит
undefined. - Null — специальное значение, обозначающее «отсутствие значения» или «пустое значение».
- Boolean — логический тип с двумя возможными значениями:
trueиfalse. - Number — числовой тип, включающий целые и дробные значения. Начиная с ES6 также доступен BigInt, предназначенный для целых чисел произвольной длины.
- String — строковый тип, то есть последовательность символов в UTF-16.
- Symbol (начиная с ES6) — уникальный неизменяемый идентификатор.
- Object — составной тип для коллекций и сложных структур, включая массивы, функции, объекты, даты и другие сущности.
Ключевые моменты
- Примитивы:
undefined,null,boolean,number,string,symbol,bigintнеизменяемы и копируются по значению. - Объекты копируются по ссылке; к ним относятся массивы, функции и экземпляры классов.
- Особенности: выражение
typeof nullвозвращает «object» из-за исторической особенности языка; BigInt появился в ES2020, а символы гарантируют уникальность и применяются в метаданных и ключах объектов.
Практический контекст
Понимание типов необходимо для корректного сравнения: например, === и == по-разному работают с примитивами и объектами. В React 18 и Node.js 18+ BigInt нередко применяют для уникальных идентификаторов. Symbol помогает исключать конфликты при добавлении свойств в глобальные объекты и библиотеки. Представление об объекте как о контейнере важно для хранения и структурирования данных в реальных приложениях.