Итак, после большого аргумента/обсуждения/обсуждения реализации null и undefined в javascript мне хотелось бы, чтобы кто-то объяснял причины внедрения и почему они отличаются в некоторых обстоятельствах. Некоторые конкретные моменты, которые я нахожу тревожными:
-
null == undefined
оценивается какtrue
-
null + 1
равно 1, ноundefined + 1
равноNaN
-
if(!null)
оценивается как true, аif(null)
- false, аnull == false
- false.
Я прочитал спецификацию, и я знаю, как достигнуты результаты, я ищу парадигмы и причины, которые диктуют это спецификацией. Некоторые из этих пунктов, особенно второй, учитывая первое, чувствуют себя очень несовместимыми.