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

Глобальне поле 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  

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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes1 Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes

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

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

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