📅  最后修改于: 2023-12-03 15:15:53.278000             🧑  作者: Mango
在JavaScript中,isNaN
函数可以用来判断一个值是否是NaN(Not a Number)。如果是,返回true
,否则返回false
。
使用示例:
isNaN(123); // false
isNaN('123'); // false
isNaN('hello'); // true
isNaN(true); // false
isNaN(undefined); // true
isNaN(null); // false
isNaN({}); // true
注意:isNaN
函数会先尝试将参数转换为数字,如果不能转换,才会返回true
。
下面是一些需要注意的点:
NaN
不等于任何值(包括它自身):NaN === NaN; // false
isNaN
函数对于字符串、布尔值、null、空字符串和空数组等值都会返回false
:isNaN(''); // false
isNaN(false); // false
isNaN(null); // false
isNaN([]); // false
valueOf
方法,再尝试将返回值转换为数字。const obj = {
valueOf: function () {
return 42;
}
};
isNaN(obj); // false
valueOf
方法的返回值不能被转换为数字,则会尝试调用该对象的toString
方法,再将返回值转换为数字。const obj = {
valueOf: function () {
return {};
},
toString: function () {
return '42';
}
};
isNaN(obj); // false
valueOf
方法,也没有toString
方法,则会返回true
。const obj = {};
isNaN(obj); // true
isNaN
函数用于判断一个值是否为NaN。false
。valueOf
方法,再尝试转换为数字;如果没有valueOf
方法,才会尝试调用toString
方法;如果两个方法都没有,则会返回true
。