Сводка

Метод Number.isNaN() определяет, является ли переданное значение NaN. Это более надёжная версия оригинальной глобальной функции isNaN().

Синтаксис

Number.isNaN(value)

Параметры

value
Значение, проверяемое на NaN.

Описание

Поскольку оба оператора проверки на равенство, == и ===, вычисляются в 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);
}

Спецификации

Спецификация Статус Комментарии

ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Number.isnan' в этой спецификации.

Стандарт Изначальное определение.

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidiOS SafariSamsung InternetNode.js
Базовая поддержкаChrome Полная поддержка 25Edge Полная поддержка ДаFirefox Полная поддержка 15IE Нет поддержки НетOpera Полная поддержка ДаSafari Полная поддержка 9WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 15Opera Android Полная поддержка ДаSafari iOS Полная поддержка 9Samsung Internet Android Полная поддержка Даnodejs Полная поддержка 0.10

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: JorJeG, Mingun
Обновлялась последний раз: JorJeG,