在JavaScript中NaN为什么不等于NaN

NaN ,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。任何与NaN进行运算的结果均会为NaN,NaN与自身不相等(NaN不与任何值相等)。

NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字

NaN=NaN;
NaN

NaN==NaN;
false

NaN===NaN;
false

ECMAScript定义了 isNaN() 函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。 isNaN() 在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串 “10” 或 Boolean 值。而任何不能被转换为数值的值都会导致这个函数返回 true 。

alert(isNaN(NaN)); //true
alert(isNaN(20)); //false(20是一个数值)
alert(isNaN(“10”)); //false(可以被转换成数值10)
alert(isNaN(“jjh”)); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值1)

猜你喜欢

转载自blog.csdn.net/Smtime826/article/details/82769350