先来看一段有趣的小程序,大家猜他的alert会执行么?
var g = parseInt("sdfdfsd");
if(g!=g){
alert(g);
}
我猜大部分的新手都会说,alert不会执行,因为自己怎么可能不等于自己呢?
但事实上,结果却让不少人大跌眼镜,运行后浏览器打印出了NaN的结果!这是为什么呢?
因为,JavaScript规定,NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。当方法 parseInt() 和 parseFloat() 在不能解析指定的字符串时就返回这个值。NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用 isNaN() 来比较。如g.isNaN()