在JavaScript中,如何判断值是否为NaN
1.window.isNaN() 用于检查其参数是否是非数字值。函数在调用时,会先将其传入的值转换为Number,而在判断字符串或者其他非数值类型的时候会先将其转换为 NaN。
window.isNaN( 'hello' ) // true
window.isNaN('123') // true
所以正确的使用是:Number.isNaN(value) // 先判断值是否为Number,再判断是否为NaN
2.Object.is() 是ES6中的,用于比较两个值是否严格相等。与全等运算符 === 的差异有两点不同:
NaN === NaN // false
+0 === -0 // true
Object.is(NaN, NaN) // true
Object.is(+0, -0) // false
3.最优雅方法是:利用 NaN 不等于自身的JavaScript中唯一的特性。
function myIsNaN ( value ) {
return value !== value;
}