--- title: Number.isNaN() slug: Web/JavaScript/Reference/Global_Objects/Число/isNaN tags: - ECMAScript 2015 - JavaScript - Number - isNaN - метод translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN ---
{{JSRef}}

Метод Number.isNaN() визначає, чи є передане значення {{jsxref("NaN")}}, а його типом - {{jsxref("Число", "Number")}}. Це більш надійна версія оригіналу, глобального методу {{jsxref("isNaN", "isNaN()")}}.

{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}}

Синтаксис

Number.isNaN(value)

Параметри

value
Значення, що перевірятиметься на {{jsxref("NaN")}}.

Значення, що повертається

true, якщо надане значення є {{jsxref("NaN")}}, а його типом - {{jsxref("Число", "Number")}}; інакше, false.

Опис

Через те, що обидва оператори рівності, {{jsxref("Operators/Equality", "==")}} та {{jsxref("Operators/Strict_equality", "===")}}, повертають false при перевірці, чи {{jsxref("NaN")}} дорівнює {{jsxref("NaN")}}, виникла необхідність у функції Number.isNaN(). Ця ситуація відрізняється від усіх інших можливих порівнянь у JavaScript.

У порівнянні з глобальною функцією {{jsxref("isNaN", "isNaN()")}}, Number.isNaN() не має проблеми з примусовим приведенням параметра до числа. Це означає, що тепер стало безпечно передавати значення, які були б перетворені на {{jsxref("NaN")}}, але, насправді, не є значеннями {{jsxref("NaN")}}. Це також означає, що лише значення числового типу, які також є {{jsxref("NaN")}}, вертають true.

Поліфіл

Наступний код працює, тому що NaN є єдиним значенням у JavaScript, яке не дорівнює самому собі.

Number.isNaN = Number.isNaN || function isNaN(input) {
    return typeof input === 'number' && input !== input;
}

Приклади

Використання isNaN

Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0);      // true

// наприклад, це дорівнювало б true у глобальному методі isNaN()
Number.isNaN('NaN');      // false
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN('ляля');     // false

// Це все вертає false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN('37');
Number.isNaN('37.37');
Number.isNaN('');
Number.isNaN(' ');

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

Специфікація
{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}

Сумісність з веб-переглядачами

{{Compat("javascript.builtins.Number.isNaN")}}

Див. також