Проверяет понимание исторической особенности JavaScript, связанной с typeof null, и знание внутреннего представления типов.
В первых реализациях JavaScript значения хранились в виде пар 'тег типа — значение'. Для объектов тег был равен 0, а null представлялся как нулевой указатель (0x00). Из-за этого typeof null возвращал 'object'.
В спецификации ECMAScript эта особенность закреплена намеренно. Исправление привело бы к поломке множества существующих сайтов и библиотек, которые полагаются на это поведение.
// Неправильно
if (typeof value === 'object' && value !== null) { ... }
// Правильно
if (value === null) { ... }
// Или через Object.is
if (Object.is(value, null)) { ... }typeof null === 'object' — это известный баг, который стал частью языка. Для надежной проверки на null используйте строгое сравнение (===) или Object.is().
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию