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()
.
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()
.
Number.isNaN(value)
value
The value to be tested for NaN
.
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.
Since x !== x
is only true for NaN
among all possible JavaScript values, Number.isNaN(x)
can also be replaced with a test for x !== x
, despite the latter being less readable.
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
.
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(' ');
Specification |
---|
ECMAScript Language Specification # sec-number.isnan |
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | Deno | Node.js | |
isNaN |
25 |
12 |
15 |
No |
15 |
9 |
4.4 |
25 |
15 |
14 |
9 |
1.5 |
1.0 |
0.10.0 |
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN