刚认识NaN时,脑子很明白NaN的意思是:不是一个数(not a number)。
var a='m';
alert( Number(a) ); 输出的是:NaN
当又认识了isNaN以后我是彻底被整蒙圈了,特别是那句逻辑上很绕的解释,isNaN的意思是:判断是不是,不是一个数。每次用到这句话我都得很费劲的才能转过弯来,怪我脑子本来就笨。
好了,我还是赶快来屡屡思路,把弯弯绕过来,下面我说三点大家就很明白了。
1、NaN的数据类型是number
var a='abc';
alert( typeof Number(a) );
//输出的是:number
2、NaN跟任何东西都不相等
var a='8';
var b=NaN;
alert( Number(a)==Number(b) );
//输出的是:false
-----------------------------------------------
var a='pee';
var b=NaN;
alert( Number(a)==b);
//输出的是:false (NaN跟它自己都不相等)
3、isNaN可以检测是不是NaN,是就返回true,不是就返回false
var a='abc';
alert( isNaN(a) ) ;
输出的是:true;
-------------------------
var a=666;
alert( isNaN(a) );
输出的是:false;