Встречается на 26% собеседований по JavaScript
Какие типы данных существуют в javascript
В JavaScript существует восемь типов данных: семь примитивных (Number, String, Boolean, Undefined, Null, Symbol, BigInt) и один составной (Object). Примитивные типы представляют простые значения, а объекты — коллекции данных и более сложные структуры.
Примитивные типы
Примитивные типы — это базовые строительные блоки языка. Они неизменяемы и передаются по значению.
- Number — представляет числа, включая целые и числа с плавающей точкой. Например,
42,3.14. Числа в JavaScript хранятся в формате с плавающей точкой двойной точности (IEEE 754). - String — представляет текстовые данные. Строки неизменяемы: любая операция, изменяющая строку, возвращает новую строку. Пример:
"Привет, мир!". - Boolean — логический тип, принимает только два значения:
trueиfalse. Используется в условных выражениях и логических операциях. - Undefined — значение, которое присваивается переменной, объявленной без инициализации. Также возвращается при обращении к несуществующему свойству объекта.
- Null — специальное значение, обозначающее «ничего» или «пустое значение». Важно:
typeof nullвозвращает"object"— это известная ошибка, сохранившаяся с ранних версий JavaScript. - Symbol — уникальное и неизменяемое значение, создаваемое с помощью
Symbol(). Используется как ключ для свойств объектов, чтобы избежать конфликтов имён. - BigInt — тип для работы с целыми числами произвольной точности. Позволяет представлять числа, превышающие максимальное безопасное значение
Number(2^53 - 1). Создаётся добавлениемnк числу:9007199254740993n.
Объекты и специальные типы
Объекты — это составной тип данных, который хранит коллекции пар «ключ-значение». Ключи могут быть строками или символами, значения — любого типа, включая другие объекты. Объекты передаются по ссылке, в отличие от примитивов.
К объектам также относятся специальные типы:
- Массивы (
Array) — упорядоченные коллекции данных. Доступ к элементам осуществляется по индексу. - Функции (
Function) — объекты первого класса, которые можно вызывать, передавать как аргументы и возвращать из других функций. - Дата (
Date) — для работы с датами и временем. - Регулярные выражения (
RegExp) — для поиска и замены по шаблону в строках.
Разница между примитивами и объектами
Понимание различий критично для корректной работы с данными:
- Изменяемость: примитивы неизменяемы, объекты изменяемы.
- Передача: примитивы передаются по значению, объекты — по ссылке.
- Сравнение: примитивы сравниваются по значению, объекты — по ссылке (два разных объекта с одинаковым содержимым не равны).
Пример:
javascript
let a = 10;
let b = a;
b = 20;
console.log(a); // 10 — примитив скопирован по значению
let obj1 = { value: 10 };
let obj2 = obj1;
obj2.value = 20;
console.log(obj1.value); // 20 — объект передан по ссылкеКоротко
- В JavaScript 8 типов данных: 7 примитивных и 1 объектный.
- Примитивы:
Number,String,Boolean,Undefined,Null,Symbol,BigInt. - Объекты включают
Object, массивы, функции,Date,RegExp. - Примитивы передаются по значению, объекты — по ссылке.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
