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

## 语法

    Number.isNaN(value)

### 参数

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

### 返回值

一个`布尔值`，表示给定的值是否是 `NaN`。

## 描述

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

和全局函数 `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(" ");

## Polyfill

    Number.isNaN = Number.isNaN || function(value) {
        return typeof value === "number" && isNaN(value);
    }

## 规范

Specification | Status | Comment
--- | --- | ---
ECMAScript 2015 (6th Edition, ECMA-262) Number.isnan | Standard | Initial definition.
ECMAScript Latest Draft (ECMA-262) Number.isnan | Draft |

## 浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

- Desktop
- Mobile

Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari
--- | --- | --- | --- | --- | ---
Basic support | 25 | 15 (15) | 未实现 | (Yes) | 未实现

Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile
--- | --- | --- | --- | --- | --- | ---
Basic support | 未实现 | ? | 15.0 (15) | 未实现 | 未实现 | 未实现

## 相关链接

- `Number`
- `isNaN()`