在JavaScript中,判断一个变量是否为NaN
(Not a Number,即“不是一个数字”),可以使用几种不同的方法。以下是一些常见的判断NaN
的方法:
-
利用
NaN
不等于自身的特性:function _isNaN(val) { return val !== val; }
-
使用
Object.is()
方法(ES6引入):function _isNaN(val) { return Object.is(val, NaN); }
-
使用全局
isNaN()
函数:function _isNaN(val) { return isNaN(val); }
但需要注意的是,如果
isNaN()
的参数不是Number
类型,它会先尝试将参数转换为数字,这可能导致一些非数字值(如字符串)也被判断为NaN
[3]。 -
使用
Number.isNaN()
方法(ES6引入):function _isNaN(val) { return Number.isNaN(val); }
Number.isNaN()
方法不会强制将参数转换为数字,它只有在参数确实是NaN
时才返回true
。
在实际应用中,推荐使用Number.isNaN()
或Object.is()
方法,因为它们提供了更准确的NaN
值检测。