【发布时间】:2011-02-17 14:22:53
【问题描述】:
只是出于好奇。
typeof NaN 是数字似乎不太合乎逻辑。顺便说一下,就像 NaN === NaN 或 NaN == NaN 返回 false 一样。这是 javascript 的特性之一,还是有原因?
编辑:感谢您的回答。不过,要吸引人并不是一件容易的事。阅读答案和维基,我理解得更多,但仍然像
这样的句子与 NaN 的比较总是返回一个无序的结果,即使与它自身进行比较也是如此。比较谓词是信令或非信令,信令版本表示此类比较的无效异常。等式和不等式谓词是无信号的,因此 x = x 返回 false 可用于测试 x 是否是安静的 NaN。
只是让我头晕目眩。如果有人可以将其翻译成人类(而不是数学家)可读的语言,我将不胜感激。
【问题讨论】:
-
+1: "NaN 是一个数字但不是一个数字。嗯...什么?!"
-
为了额外的乐趣; (NaN !== NaN) == 真
-
更有趣(但想想也可以理解,isNaN 返回一个布尔值): isNaN(parseInt('nodice')) === isNaN(parseInt('someOtherNaN')) ===是的;
-
如果使用jQuery,我更喜欢
isNumeric而不是检查类型:$.isNumeric(NaN);返回false,而$.type(NaN);返回数字。 api.jquery.com/jQuery.isNumeric -
作为专业数学家,我必须说这句话与精确的数学语言几乎没有共同之处。
标签: javascript nan