什么是NaN?它的類型是什么?如何可靠的測試一個值是否等於NaN?


NaN屬性表示“不是數字”的值。這個特殊值是由於一個操作數是非數字的(例如“abc”/4)或者因為操作的結果是非數字而無法執行的。

雖然看起來很簡單,但是NaN有一些令人驚訝的特征,如果人們沒有意識到這些特征,就會導致BUG。

一方面,雖然NaN的意思是“不是數字”,但它的的類型是,數字:

console.log(typeof NaN === "number"); //logs "true"

此外,NaN相比任何事情-甚至本身! - false:

console.log(NaN === NaN); //logs "false"

測試數字是否等於NaN的半可靠辦法是使用內置函數isNaN(),但是即使使用isNaN()也不是一個好的解決方案。

一個更好的解決方案要么是使用value!=值,如果該值等於NaN,那么只會生成true。另外ES6提供了一個新的Number.isNaM()函數,它是舊的全局isNaN ()函數不同,也更加可靠。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM