Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

Глобальне поле NaN - це значення, що служить для відображення "не числа".

Атрибути поля NaN
Доступний для запису ні
Доступний для переліку ні
Доступний для налаштування ні

Синтаксис

NaN

Опис

NaN являється полем глобального об'єкту.

При ініціалізації значенням NaN стає "не число" — так само, як і значення Number.NaN. У сучасних браузерах NaN — це поле, недоступне для запису чи налаштування. Навіть якщо у вашому випадку це не так - уникайте його перевизначення.

NaN у програмах застосовується відносно рідко. Зокрема, це результат помилки виконнаня функцій Math (наприклад, Math.sqrt(-1)) або ж помилка при розборі числа (parseInt("blabla")).

Перверка на NaN

NaN не дорівнює (тобто при застосуванні операторів ==, !=, ===, та !==) будь-якому іншому значенюю, включно із будь-яким іншим NaN. Використовуйте Number.isNaN() чи isNaN() для найбільш надійного визначення NaN. Або ж виконуйте порівняння аргументу із самим собою: NaN, і лише NaN не дорівнює сам собі.

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

function valueIsNaN(v) { return v !== v; }
valueIsNaN(1);          // false
valueIsNaN(NaN);        // true
valueIsNaN(Number.NaN); // true

Однак, майте на увазі відмінність між isNaN() та Number.isNaN(): перший поверне true, якщо аргумент являється NaN, або ж він стане NaN після приведення до чисельного типу, в той час як другий поверне true лише у випадку, якщо аргумент в даний момент являється NaN:

isNaN('hello world'); // повертає 'true'.
Number.isNaN('hello world'); // повертає 'false'.

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

Специфікація Статус Примітка
ECMAScript 1st Edition (ECMA-262) Standard Первинне визначення. Реалізовано у JavaScript 1.3
ECMAScript 5.1 (ECMA-262)
The definition of 'NaN' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'NaN' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'NaN' in that specification.
Draft  

Підтримка у браузерах

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Дивіться також

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

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,