Number.isNaN()
Сводка
Синтаксис
Number.isNaN(value)
Параметры
value-
Значение, проверяемое на
NaN.
Описание
Поскольку оба оператора проверки на равенство, == (en-US) и === (en-US), вычисляются в false при проверке, что NaN и есть NaN, появляется необходимость в функции Number.isNaN(). Эта ситуация отличается от всех других возможных сравнений в JavaScript.
В отличие от глобальной функции isNaN(), Number.isNaN() не имеет проблемы принудительного преобразования параметра в число. Это значит, что в него безопасно передавать значения, которые обычно превращаются в NaN, но на самом деле NaN не являются. Также это значит, что метод возвращает true только для числовых значений, имеющих значение NaN.
Примеры
js
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(' ');
Полифил
js
Number.isNaN = Number.isNaN || function(value) {
return typeof value === 'number' && isNaN(value);
}
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-number.isnan |
Совместимость с браузерами
BCD tables only load in the browser