JavaScript Number.isNaN() 方法
实例代码
检测参数是否为 Number.NaN:
Number.isNaN(123);
Number.isNaN(-1.23);
Number.isNaN('123');
Number.isNaN(0/0);
Number.isNaN(5-2);
Number.isNaN(0);
Number.isNaN('Hello');
Number.isNaN('2005/12/12');
Number.isNaN(' ');
定义和用法
NaN 是 "Not-a-Number" 的简写,字面上翻译为不是一个数字。
在 JavaScript 中,NaN 是一个不合法的数字。
Number.isNaN() 方法用于判断传递的值是否为 NaN,并且检查其类型是否为 Number,如果值为 NaN 且类型为 Number,则返回 true,否则返回 false。
在 JavaScript 中,NaN 最特殊的地方就是,我们不能使用相等运算符 == 和 === 来判断一个值是否是 NaN,因为 NaN == NaN 和 NaN === NaN 都会返回 false。因此,必须要有一个判断值是否是 NaN 的方法。
和全局函数 isNaN() 相比,Number.isNaN() 不会自行将参数转换成数字,只有在参数是值为 NaN 的数字时,才会返回 true。
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // 下面这几个如果使用全局的 isNaN() 时,会返回 true。 Number.isNaN("NaN"); // false,字符串 "NaN" 不会被隐式转换成数字 NaN。 Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN("blabla"); // false // 下面的都返回 false Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" ");
浏览器支持
Number.isNaN() 是 ECMAScript6 (ES6) 新特性。
基本上最新的浏览器版本都支持 ES6 (JavaScript 2015)。
Number.isInteger() 不支持 Internet Explorer 11 及更早版本的浏览器。
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
语法
Number.isNaN(value)
参数值
参数 | 描述 |
---|---|
value | 要检测的值。 |
返回值
类型 | 描述 |
---|---|
布尔型 | 如果值为 NaN 且类型为 Number,则返回 true,否则返回 false。 |
技术细节
JavaScript 版本: | ECMAScript 6 |
---|
更多实例
实例代码
检测参数是否为整数:
// 返回 true
isNaN('Hello');
// 返回 false
Number.isNaN('Hello');