JavaScript Number.isNaN() 方法

月间摘星

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');
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com

目录[+]

取消
微信二维码
微信二维码
支付宝二维码