NaN 屬性表示一個“不是數(shù)字”的值。這個特殊的值是因?yàn)檫\(yùn)算不能執(zhí)行而導(dǎo)致的,不能執(zhí)行的原因要么是因?yàn)槠渲械倪\(yùn)算對象之一非數(shù)字(例如, "abc" / 4),要么是因?yàn)檫\(yùn)算的結(jié)果非數(shù)字(例如,除數(shù)為零)。
(推薦教程:js教程)
首先,雖然 NaN 意味著“不是數(shù)字”,但是它的類型是 Number。
console.log(typeof NaN === "number"); // logs "true"
此外, NaN 和任何東西比較——甚至是它自己本身,結(jié)果是false:
console.log(NaN === NaN); // logs "false"
如果要測試一個數(shù)字是否等于 NaN,可以使用 value !== value。如果值等于NaN,只會產(chǎn)生true。另外,ES6提供了一個新的 Number.isNaN() 函數(shù),這是一個不同的函數(shù),并且比老的全局 isNaN() 函數(shù)更可靠。