NaN是一个特殊的数量值,不表示一个数字,尽管下面的代码仍然是返回类型为numberjavascript
console.log(typeof NaN);//number
console.log(typeof NaN==='number');//truejava
可见typeof不能真正区分数字与NaN的区别。函数
为了进一步区分NaN与数字,能够使用isFinite函数,若是有限数值,该函数将返回true,若是是NaN、正负无穷大的数值,则返回false。对象
关于NaN的运算规则:ip
若是NaN是数学运算中的一个运算数,那么它与其余运算数的运算结果就会是NaN原型链
NaN===NaN;//false;(我本身就理解成虽然不是number,但不是number的有好多,也必定不会都相等)原型
NaN!==NaN;//true;数学
undefined的值在以下状况下出现:it