只是出于好奇。
数字似乎不太合乎逻辑typeof NaN。顺便说一句,就像NaN === NaN或NaN == NaN返回 false 一样。这是 javascript 的特性之一,还是有原因?
typeof NaN
NaN === NaN
NaN == NaN
编辑:感谢您的回答。不过,要吸引人并不是一件容易的事。阅读答案和维基,我理解得更多,但仍然像这样的句子
与 NaN 的比较始终返回无序结果,即使与自身进行比较也是如此。比较谓词是信令或非信令,信令版本表示此类比较的无效异常。等式和不等式谓词是无信号的,因此 x = x 返回 false 可用于测试 x 是否是安静的 NaN。
只是让我头晕目眩。如果有人可以将其翻译成人类(而不是数学家)可读的语言,我将不胜感激。
这意味着不是一个数字。这不是 javascript 的特性,而是常见的计算机科学原理。
来自http://en.wikipedia.org/wiki/NaN:
返回 NaN 的操作有以下三种:
以 NaN 作为至少一个操作数的操作
不确定的形式
具有复杂结果的实际操作:
所有这些值可能都不相同。NaN 的一个简单测试是测试value == value是否为假。
value == value