在JavaScript中,如何判斷值是否為NaN
1.window.isNaN() 用于檢查其參數(shù)是否是非數(shù)字值。函數(shù)在調(diào)用時(shí),會(huì)先將其傳入的值轉(zhuǎn)換為Number,而在判斷字符串或者其他非數(shù)值類(lèi)型的時(shí)候會(huì)先將其轉(zhuǎn)換為 NaN。
window.isNaN( 'hello' )?? // true
window.isNaN('123')?? // true
所以正確的使用是:Number.isNaN(value)? // 先判斷值是否為Number,再判斷是否為NaN
2.Object.is() 是ES6中的,用于比較兩個(gè)值是否嚴(yán)格相等。與全等運(yùn)算符 ===? 的差異有兩點(diǎn)不同:
NaN === NaN? // false
+0 === -0? // true
Object.is(NaN, NaN) // true
Object.is(+0, -0) // false
3.最優(yōu)雅方法是:利用 NaN 不等于自身的JavaScript中唯一的特性。
function myIsNaN ( value ) {
??????????? return value !== value;
}
標(biāo)簽: