现在位置: 首页 > JavaScript 参考手册 > 正文

JavaScript Number.isNaN() 方法

Number 对象参考手册 JavaScript Number 对象

实例

检测参数是否为 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');

尝试一下 »

Number 对象参考手册 JavaScript Number 对象