含义
NaN
是JavaScript的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。
5 - 'x' // NaN
上面代码运行时,会自动将字符串x
转为数值,但是由于x
不是数值,所以最后得到结果为·NaN·,表示它是“非数字”(NaN
)。
另外,一些数学函数的运算结果会出现NaN
。
Math.acos(2) // NaN
Math.log(-1) // NaN
Math.sqrt(-1) // NaN
0/0 //NaN
这些计算在数学上本来就是错误的,所以计算结果返回NaN
,
注意: NaN
的数据类型仍然是number
typeof NaN
//"number"
神奇之处
NaN === NaN // false
//NaN不等于任何值,包括它本身
Boolean(NaN) // false
//条件判断布尔运算时,NaN 被当做false
NaN + 1 // NaN
NaN - 1 // NaN
NaN * 1 // NaN
NaN / 1 // NaN
//NaN与任何数(包括它自己)的运算,得到的都是NaN。
判断NaN
的方法
-
isNaN()
,判断一个数是否为NaN
,返回true
或false
,但是只对数值有效,不是数值的参数会先转化成数值,当转化不了的时候就转成了NaN
,所有这个方法判断不一定准确。 - 判断NaN更可靠的方法是,利用
NaN
是JavaScript之中唯一不等于自身的值这个特点,进行判断。
function myIsNaN(value) {
return value !== value;
}
网友评论