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