Number.isNaN()
Сводка
Синтаксис
Number.isNaN(value)
Параметры
Описание
Поскольку оба оператора проверки на равенство, ==
и ===
, вычисляются в 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);
};
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-number.isnan |
Совместимость с браузерами
BCD tables only load in the browser