最近在学习JavaScript遇到了NAN的相关问题
NaN,表示非数(Not a Number)是个特殊的数值。
在JavaScript中NaN与其他任何值比较都将不相等 ( 包括与其他 NAN值进行比较)。
NaN == NaN; //false
NaN === NaN; //false
必须使用 Number.isNaN() 或 isNaN() 函数。(用来确定一个值是否为NaN)
请注意isNaN()和Number.isNaN()之间的区别:如果当前值是NaN,或者将其强制转换为数字后将是NaN,则前者将返回true。而后者仅当值当前为NaN时才为true:
isNaN(NaN); //true
isNaN("NaN"); //true
isNaN(true); //false -->可以转换成数值
isNaN(10); //false
isNaN("10"); //false -->可以转换成数值
isNaN(""); //false -->转换成0
Number.isNaN(NaN); //true
Number.isNaN("NaN"); //false
Number.isNaN(true); //false
Number.isNaN(10); //false
Number.isNaN(""); //false
总结一下:
有NAN参与的运算结果都是NaN
isNAN判断是不是数值:
不是数值——true
是数值 —— false