Встречается на 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
интервью вопросы и ответы