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