Вебсправочник
Справочник JavaScript

Number.isNaN(): распознавание NaN

Number.isNaN определяет, является ли значение специальным числовым результатом NaN.

Назначение

Number.isNaN определяет, является ли значение специальным числовым результатом NaN.

Как это работает

Метод не преобразует аргумент. Строка с буквами сама по себе не NaN; NaN может получиться после неудачного числового преобразования. Обычное сравнение NaN===NaN даёт false.

Пример

console.assert(Number.isNaN(Number('abc')));
console.assert(!Number.isNaN('abc'));
console.assert(Number.isNaN(0/0));
console.assert(!(NaN===NaN));

Что должно получиться

Только настоящее значение NaN проходит проверку. Исходная строка остаётся строкой, даже если её нельзя корректно преобразовать в обычное число.

Граница применения и частая ошибка

Не используйте x===NaN для проверки ошибки вычисления. И не смешивайте Number.isNaN с глобальным isNaN, который имеет другое поведение преобразования типов.

Самостоятельная проверка

Сравните строку "abc" до и после Number. Затем вычислите 0/0 и проверьте результат через Number.isNaN, не заменяя проверку строковым сравнением.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.