JS一千问(8):如何正确使用isNaN方法?

NaN是一种数字类型,完整名称是Not-A-Number,代表不是一个数字。

isNaN()方法的作用是判断目标是否可转换成数字,返回值为布尔值,通常全局变量window上默认有此方法,能随时直接使用。执行流程:

  1. Number转换参数
  2. 结果与NaN相比较
window.isNaN('123');    // false
window.isNaN('hello world');   // true
// 或 isNaN('123'); // false

Number('hello world');  // NaN

特殊的:

 window.isNaN(undefined) // true;

一般理解应该返回false,由于NaN是唯一一个与自身不相等的特殊值,如此可自定义严格判断方法:

function isReallyNaN (x){
    return x!==x;
}

isReallyNaN(undefined); // false;

此外,新版本ES6中新增了Number.isNaN()方法,可用于判断一个值是否严格等于NaN,不进行类型转换,更加简便。应用场景多是判断两个变量运算的结果。

Number.isNaN(undefined);  // false
Number.isNaN(123); // false
Number.isNaN('123'); // false
Number.isNaN('hello world'); // false
Number.isNaN(0/0); // true

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注