Получить доступ

Какие типы данных есть в JavaScript?

JuniorОсновы JavaScript
Ещё спрашивают так:
  • Почему typeof null — "object"?
  • Чем примитивы отличаются от объектов?
Коротко

Семь примитивов: string, number, bigint, boolean, undefined, null, symbol — и object (включая массивы, функции, даты). Примитивы неизменяемы и копируются по значению, объекты — передаются по ссылке. typeof null === "object" — историческая ошибка первой реализации.

  • number — 64-битный double: 0.1 + 0.2 !== 0.3, безопасные целые до 2^53
  • Массив — Array.isArray, typeof даст "object"
  • undefined — «значение не задано», null — «явно пусто»

А ещё Методы у строк работают через временную обёртку String

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

typeof:

typeof "a"        // "string"
typeof 1          // "number"
typeof 1n         // "bigint"
typeof true       // "boolean"
typeof undefined  // "undefined"
typeof Symbol()   // "symbol"
typeof null       // "object"  — ошибка, сохранённая ради совместимости
typeof {}         // "object"
typeof []         // "object"
typeof (() => 1)  // "function"

Примитивы и объекты. Присваивание примитива копирует значение; присваивание объекта копирует ссылку — две переменные смотрят на один объект.

Числа. Все числа — double: дробная погрешность и потеря точности целых больше Number.MAX_SAFE_INTEGER. Для больших целых — BigInt, для денег — целые копейки.

null и undefined: undefined — значение по умолчанию у неинициализированной переменной, отсутствующего свойства и аргумента; null присваивают явно. Оператор ?? подставляет значение для обоих.

Что хотят услышать

  • Перечень типов.
  • Примитивы против объектов.
  • Особенности typeof и чисел.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем