如果我有一些评估为NaN的东西,为什么它与NaN没有显示相等性

时间:2018-05-26 17:29:02

标签: javascript nan

在以下代码中:

var notNum = 'dfsd'
Number(notNum) === NaN 

最后一个表达式的计算结果为false。你知道为什么吗?在比较中没有办法使用NaN吗?

typeof(Number(notNum)) === 'number'

以某种方式评估为真。我真的不明白NaN是如何运作的。

1 个答案:

答案 0 :(得分:1)

当某些数学运算失败时,NaN(Not-a-Number)是JS中的全局对象。

您无法直接将对象与其他对象进行比较。 您必须使用您正在使用的typeof,或者您可以使用Object.is()

Object.is(Number(notNum),NaN)// true