Сводка
Метод Number.isNaN()
определяет, является ли переданное значение NaN
. Это более надёжная версия оригинальной глобальной функции isNaN()
.
Синтаксис
Number.isNaN(value)
Параметры
value
- Значение, проверяемое на
NaN
.
Описание
Поскольку оба оператора проверки на равенство, ==
и ===
, вычисляются в false
при проверке, что NaN
и есть NaN
, появляется необходимость в функции Number.isNaN()
. Эта ситуация отличается от всех других возможных сравнений в JavaScript.
В отличие от глобальной функции isNaN()
, Number.isNaN()
не имеет проблемы принудительного преобразования параметра в число. Это значит, что в него безопасно передавать значения, которые обычно превращаются в NaN
, но на самом деле NaN
не являются. Также это значит, что метод возвращает true
только для числовых значений, имеющих значение NaN
.
Примеры
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
// При использовании глобальной функции isNaN() это всё будет true
Number.isNaN('NaN'); // false
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(' ');
Полифилл
Number.isNaN = Number.isNaN || function(value) {
return typeof value === 'number' && isNaN(value);
}
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) |
Стандарт | Изначальное определение. |
Совместимость с браузерами
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.