在JavaScript中,为什么isNaN(值)与value==NaN不同?

在JavaScript中,为什么isNaN(值)与value==NaN不同?,javascript,nan,Javascript,Nan,正如问题中所说的那样,我尝试了value==NaN,结果是错误的,然后记得我应该使用isNaN(value)来检查这一点 为什么会有这种差异?从 NaN是一个特殊值,您可以将其视为例如Infinity无穷大不等于另一个无穷大,因为它没有定义的值我不能说它比这样做更好 与JavaScript中所有其他可能的值不同,不可能依靠相等运算符(=和==)来确定值是否为NaN,因为NaN==NaN和NaN===NaN都计算为false。因此,isNaN功能的必要性 与JavaScript中所有其他可能的值不

正如问题中所说的那样,我尝试了
value==NaN
,结果是错误的,然后记得我应该使用
isNaN(value)
来检查这一点


为什么会有这种差异?


NaN
是一个特殊值,您可以将其视为例如
Infinity
<代码>无穷大
不等于另一个
无穷大
,因为它没有定义的值

我不能说它比这样做更好


与JavaScript中所有其他可能的值不同,不可能依靠相等运算符(
=
==
)来确定值是否为
NaN
,因为
NaN==NaN
NaN===NaN
都计算为
false
。因此,
isNaN
功能的必要性


与JavaScript中所有其他可能的值不同,不可能依靠相等运算符(
=
==
)来确定值是否为
NaN
,因为
NaN==NaN
NaN===NaN
都计算为
false
。因此,
isNaN
函数的必要性——更多信息请参见:有人想解释下一票吗?可能是令人敬畏的比较kool的复制品,坚实的一个你可能想清楚你指的是无穷大的数学概念,而不是JavaScript中的
Infinity
变量(在JavaScript中为
Infinity===Infinity
)。