简述Javascript isNan() 函数 ?

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

发表评论

后才能评论