JavaScript的isNaN()函数用于检查一个值是否是非数值(NaN)。在JavaScript中,NaN(Not a Number)是一个特殊的值,表示一个无法表示的数值结果,如0除以0。
下面是一些使用isNaN()函数的例子:
isNaN(NaN); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN(""); // false
isNaN(); // false
isNaN(37); // false
// 字符串转换为数字
isNaN("37"); // false: "37"转换为数字37
isNaN("37.37"); // false: "37.37"转换为数字37.37
isNaN("37,5"); // true: 逗号不是数字的合法部分
isNaN('123ABC'); // true: "123ABC"转换为数字时因"ABC"无法转换而返回NaN
需要注意的是,isNaN会首先尝试将这个参数转换为数字,然后再判断。所以在某些情况下,可能会出现非预期的结果。例如,空字符串和在转换为数字时,会变成0,所以isNaN(“”)和isNaN()都会返回false。
如果你想避免这种类型转换,可以使用Number.isNaN()函数,它只有在参数严格等于NaN时,才会返回true。
Number.isNaN(NaN); // true
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN(""); // false
Number.isNaN(); // false
Number.isNaN(37); // false
Number.isNaN("37"); // false: "37"并不严格等于NaN
Number.isNaN("37.37"); // false: "37.37"并不严格等于NaN
Number.isNaN("37,5"); // false: "37,5"并不严格等于NaN
Number.isNaN('123ABC'); // false: "123ABC"并不严格等于NaN