Number.isNaN()
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Статический метод Number.isNaN() определяет, является ли переданное значение числовым значением NaN, и возвращает false, если входные данные не относятся к типу Number. Это более надёжная версия исходной, глобальной функции isNaN().
Попробовать
function typeOfNaN(x) {
if (Number.isNaN(x)) {
return "Number NaN";
}
if (isNaN(x)) {
return "NaN";
}
}
console.log(typeOfNaN("100F"));
// Expected output: "NaN"
console.log(typeOfNaN(NaN));
// Expected output: "Number NaN"
Синтаксис
Number.isNaN(value)
Параметры
-
value - Значение для проверки на
NaN.
Возвращаемое значение
Булево значение true, если заданное значение является числом со значением NaN. В противном случае — false.
Описание
Функция Number.isNaN() предоставляет удобный способ проверки равенства с NaN. Обратите внимание, что вы не можете проверить равенство с NaN, используя операторы == или ===, поскольку, в отличие от всех других сравнений значений в JavaScript, они всегда возвращают false, когда один операнд является NaN, даже если другой операнд также является NaN.
Поскольку x !== x истинно только для NaN среди всех возможных значений JavaScript, Number.isNaN(x) также можно заменить проверкой на x !== x, хотя последняя менее читабельна.
В отличие от глобальной функции isNaN(), метод Number.isNaN() не принуждает к преобразованию параметра в число. Это делает безопасной передачу значений, которые обычно преобразуются в NaN, но на самом деле не являются тем же значением, что и NaN. Это также означает, что только значения типа Number, которые также являются NaN, возвращают true.
Примеры
Использование isNaN()
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0); // true Number.isNaN(37); // false
Разница между Number.isNaN() и глобальной isNaN()
Number.isNaN() не пытается преобразовать параметр в число, поэтому нечисловые значения всегда возвращают false. Все следующие примеры возвращают false:
Number.isNaN("NaN");
Number.isNaN(undefined);
Number.isNaN({});
Number.isNaN("blabla");
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
Глобальная функция isNaN() принудительно приводит свой параметр к числу:
isNaN("NaN"); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN("blabla"); // true
isNaN(true); // false, this is coerced to 1
isNaN(null); // false, this is coerced to 0
isNaN("37"); // false, this is coerced to 37
isNaN("37.37"); // false, this is coerced to 37.37
isNaN(""); // false, this is coerced to 0
isNaN(" "); // false, this is coerced to 0
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
isNaN |
25 |
12 |
15 |
15 |
9 |
25 |
15 |
14 |
9 |
1.5 |
4.4 |
9 |
1.0.0 |
1.0 |
0.10.0 |
Смотрите также
© 2005–2025 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