JavaScript метод isNaN()ECMAScript 2015

JavaScript Number

Определение и применение

JavaScript метод isNaN()ECMAScript 2015 определяет, является ли передаваемое значение NaN (англ. Not-a-Number, "не число") и возвращает логическое значение. Метод возвращает true, если передаваемое значение NaN и его тип Number, в противном случае возвращаемое значение false.


Обращаю Ваше внимание, что метод Number.isNaN()ECMAScript 2015 является улучшенной версией одноименной глобальной функции isNaN() и исправляет некоторые проблемы при работе с ней.

Метод Number.isNaN()ECMAScript 2015 преобразует свой аргумент в число только после сравнения его с NaN, в результате чего он возвращает true тогда и только тогда, когда переданный аргумент имеет точно такое же значение, что и NaN. Глобальная функция isNaN() конвертирует свой аргумент в числовой тип перед тем как проводить сравненине, это может приводить к нежелательным ошибкам, в которых не числовые значения возвращают true.


Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
isNaN()ECMAScript 201525.015.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
JavaScript Number