Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

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

JavaScript *
Все JavaScript-программисты давно привыкли к тому, что typeof null === 'object'; // true, хотя фактически null — примитивное значение. Многие знают, что это баг, и лично Брэндан Айк это признает. Этот баг, вероятно, никогда не будет исправлен из-за необходимости сохранения обратной совместимости существующего кода с новыми версиями языка.

Интересна история того, как же это получилось. Она восходит корнями к первой версии языка, а именно — к тому факту, что значения переменных хранились в 32-битных ячейках в следующем формате:
29-31 бит: само значение;
1-3 бита: метка типа данных;

Было всего пять вариантов метки типа:
Читать дальше →
Всего голосов 59: ↑47 и ↓12 +35
Просмотры 39K
Комментарии 21