# Number.isNaN()

The `Number.isNaN()` method determines whether the passed value is `NaN` and its type is `Number`. It is a more robust version of the original, global `isNaN()`.

## Syntax

``Number.isNaN(value)``

### Parameters

`value`
The value to be tested for `NaN`.

### Return value

true if the given value is `NaN` and its type is `Number`; otherwise, false.

## Description

Due to both equality operators, `==` and `===`, evaluating to `false` when checking if `NaN` is `NaN`, the function `Number.isNaN()` has become necessary. This situation is unlike all other possible value comparisons in JavaScript.

In comparison to the global `isNaN()` function, `Number.isNaN()` doesn't suffer the problem of forcefully converting the parameter to a number. This means it is now safe to pass values that would normally convert to `NaN`, but aren't actually the same value as `NaN`. This also means that only values of the type number, that are also `NaN`, return `true`.

## Examples

```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

The following works because NaN is the only value in javascript which is not equal to itself.

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

## Specifications

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.
Draft

## Browser compatibility

Update compatibility data on GitHub
Desktop Mobile Server Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android Chrome Full support 25 Edge Full support 12 Firefox Full support 15 IE No support No Opera Full support Yes Safari Full support 9 WebView Android Full support Yes Chrome Android Full support Yes Edge Mobile Full support Yes Firefox Android Full support 15 Opera Android Full support Yes Safari iOS Full support 9 Samsung Internet Android Full support Yes nodejs Full support 0.10

Full support
Full support
No support
No support