非常教程

JavaScript参考手册

Number

Number.isNaN

Number.isNaN()方法确定传递的值是否为NaN和其类型是Number。它是原始的全局isNaN()的更强大的版本。

语法

Number.isNaN(value)

参数

value要被检测是否是NaN的值。

返回值

一个布尔值,表示给定的值是否是 NaN

描述

在 JavaScript 中,NaN最特殊的地方就是,我们不能使用相等运算符(== 和===)来判断一个值是否是NaN,因为NaN == NaNNaN === NaN都会返回false。因此,必须要有一个判断值是否是NaN的方法。

和全局函数isNaN()相比,该方法不会强制将参数转换成数字,只有在参数是真正的数字类型,且值为NaN的时候才会返回true

示例

Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0);      // true

// e.g. these would have been true with global isNaN()
Number.isNaN('NaN');      // false
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN('blabla');   // false

// These all return false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN('37');
Number.isNaN('37.37');
Number.isNaN('');
Number.isNaN(' ');

Polyfill

NaN不等于自己,也在JavaScript是唯一的价值。

Number.isNaN = Number.isNaN || function(value) {     
    return value !== value;
}

规范

Specification

Status

Comment

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Number.isnan' in that specification.

Standard

Initial definition.

ECMAScript Latest Draft (ECMA-262)The definition of 'Number.isnan' in that specification.

Living Standard

浏览器兼容性

Feature

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

Basic Support

25

(Yes)

15

No

(Yes)

9

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Basic Support

(Yes)

(Yes)

(Yes)

15

No

(Yes)

9

JavaScript

JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络