Почему null зарезервировано и его нельзя изменить, а undefined — нет?
https://developer.mozilla.org/en-US/docs/Web/JavaS...
Ещё можно понять другие ключевые слова, типа "if" - изменение их будет противоречить синтаксису языка. Но зачем там null и почему нет undefined? Тем более это позволяет менять undefined и сами понимаете к каким сюрпризам это может привести, особенно если ты - новичок в js.
Ага, а еще typeof null === 'object'. Так сложилось исторически — JS создавался за 10 дней и не все вышло идеально:)
В strict mode undefined уже не явлется перезаписываемым свойством.
Если мы не в strict mode (старые IE, всякое легаси), undefined можно, например, добыть из выражения void 0 (void — это оператор, который вычисляет свой операнд и возвращает undefined).