Сейчас я размышляю, но причина, по которой я считаю NaN
и undefined
не ключевыми словами, заключается в том, что вы обычно не присваиваете эти значения переменным.
var x = undefined; // doesn't make sense, use null!
var y = NaN; // You can't do much with this variable!
undefined
в основном означает uninitialized
, и если вы хотите прояснить, что значение неизвестно, вы используете null
.Так что undefined
обычно означает неинициализированный или неверный результат кода JavaScript.
NaN
Редко назначается вручную, просто потому, что вы не можете многое сделать с этим значением.Обычно это результат неверного расчета.Создатели JavaScript, вероятно, не хотели придавать этому значению видимость примитивных значений.
Кроме того, NaN
также присутствует в других языках и там также не используется в качестве ключевого слова.Например: в C#
NaN представлен Double.NaN
, так как вы не проводите различий между значениями с плавающей запятой и целыми числами в JavaScript, я предполагаю, что именно поэтому они помещают NaN
с глобальными идентификаторами!
Надеюсь, это прояснит ситуацию!