JavaScript метод isNaN()
JavaScript NumberОпределение и применение
JavaScript метод isNaN() определяет, является ли передаваемое значение NaN (англ. Not-a-Number, "не число") и возвращает логическое значение. Метод возвращает true, если передаваемое значение NaN и его тип Number, в противном случае возвращаемое значение false.
Обращаю Ваше внимание, что метод Number.isNaN() является улучшенной версией одноименной глобальной функции isNaN() и исправляет некоторые проблемы при работе с ней.
Метод Number.isNaN() преобразует свой аргумент в число только после сравнения его с NaN, в результате чего он возвращает true тогда и только тогда, когда переданный аргумент имеет точно такое же значение, что и NaN. Глобальная функция isNaN() конвертирует свой аргумент в числовой тип перед тем как проводить сравненине, это может приводить к нежелательным ошибкам, в которых не числовые значения возвращают true.
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
isNaN() | 25.0 | 15.0 | Да | 9.0 | Нет | Да |
JavaScript синтаксис:
Number.isNaN( value );
Версия JavaScript
ECMAScript 2015 (6th Edition, ECMA-262)Значения параметров
Параметр | Описание |
---|---|
value | Значение, которое будет проверяться на NaN. Обязательное значение. |
Пример использования
// Метод возвращает true Number.isNaN( NaN ); Number.isNaN( Number.NaN ); Number.isNaN( 0 / 0 ); Number.isNaN( Infinity / Infinity ); Number.isNaN( -Infinity / Infinity ); // Метод возвращает false Number.isNaN( Infinity ); Number.isNaN( -Infinity ); Number.isNaN( true ); Number.isNaN( null ); Number.isNaN( 123 ); Number.isNaN( "123" ); Number.isNaN( "1.23" ); Number.isNaN( "" ); Number.isNaN( " " ); // Отличие метода Number.isNaN от функции isNan() Number.isNaN( "NaN" ); // false isNaN( "NaN" ); // true Number.isNaN( undefined ); // false isNaN( undefined ); // true Number.isNaN( {} ); // false isNaN( "string" ); // true
В качестве альтернативной проверки переменной на NaN без использования функции isNaN() вы можете воспользоваться следующей конструкцией:
const x = NaN x != x // true x !== x // trueJavaScript Number