Number.isNaN()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Сводка
Синтаксис
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