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