关于NaN

NaN,即非数值(Not a Number)是一个特殊的值。用于判断是不是number类型

可以通过Number.NaN得到NaN值,任何与NaN进行运算的结果均为NaN,NaN与自身不相等(NaN不与任何值相等)。

alert(Number.NaN); //NaN

alert(NaN+1); //NaN

alert(NaN == NaN) //false

判断方法isNaN()

用来判断这个值到底是不是NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值。

alert(isNaN(NaN)); //true

alert(isNaN(25)); //false,25是一个数值

alert(isNaN('25')); //false,'25'是一个字符串数值,可以转成数值

alert(isNaN('Lee')); //true,'Lee'不能转换为数值

alert(isNaN(true)); //false true可以转成成1

isNaN()函数也适用于对象。在调用isNaN()函数过程中,首先会调用valueOf()方法,然后确定返回值是否能够转换成数值。如果不能,则基于这个返回值再调用toString()方法,再测试返回值。

var box = {

toString : function () {

return '123'; //可以改成return 'Lee'查看效果

}

};

alert(isNaN(box)); //false

有3个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。Number()函数是转型函数,可以用于任何数据类型,而另外两个则专门用于把字符串转成数值。

alert(Number(true)); //1,Boolean类型的true和false分别转换成1和0

alert(Number(25)); //25,数值型直接返回

alert(Number(null)); //0,空对象返回0

alert(Number(undefined)); //NaN,undefined返回NaN

原文地址:https://www.cnblogs.com/sunnychen/p/6160248.html