Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: typeof, null, object, type coercion, javascript internals

Почему typeof null === "object"?

Проверяет понимание исторической особенности JavaScript, связанной с typeof null, и знание внутреннего представления типов.

Короткий ответ

В JavaScript typeof null возвращает 'object' из-за исторической ошибки в ранних версиях языка. При создании JavaScript значения в памяти хранились с тегом типа, и null имел нулевой указатель, который интерпретировался как объектный тип. Исправление этой ошибки сломало бы существующий код, поэтому поведение было сохранено.

Длинный ответ

Историческая причина

В первых реализациях JavaScript значения хранились в виде пар 'тег типа — значение'. Для объектов тег был равен 0, а null представлялся как нулевой указатель (0x00). Из-за этого typeof null возвращал 'object'.

Почему не исправили?

В спецификации ECMAScript эта особенность закреплена намеренно. Исправление привело бы к поломке множества существующих сайтов и библиотек, которые полагаются на это поведение.

Как правильно проверять на null?

// Неправильно
if (typeof value === 'object' && value !== null) { ... }

// Правильно
if (value === null) { ... }

// Или через Object.is
if (Object.is(value, null)) { ... }

Вывод

typeof null === 'object' — это известный баг, который стал частью языка. Для надежной проверки на null используйте строгое сравнение (===) или Object.is().

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#typeof

#null

#object

#type coercion

#javascript internals

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию