--- title: NaN slug: Web/JavaScript/Reference/Global_Objects/NaN tags: - JavaScript - Властивість - Довідка translation_of: Web/JavaScript/Reference/Global_Objects/NaN ---
{{jsSidebar("Objects")}}

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

{{js_property_attributes(0,0,0)}}

{{EmbedInteractiveExample("pages/js/globalprops-nan.html")}}

Опис

NaN є властивістю глобального об'єкта. Іншими словами, це змінна глобальної області видимості.

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

Існує п'ять різних типів операцій, що повертають NaN:

Приклади

Первірка на NaN

NaN не дорівнює (через ==, !=, === та !==) будь-якому значенню, в тому числі іншому значенню NaN. Використовуйте {{jsxref("Number.isNaN()")}} або {{jsxref("Global_Objects/isNaN", "isNaN()")}}, щоб якнайточніше визначити, чи значення є 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('привіт'); // повертає 'true'.
Number.isNaN('привіт'); // повертає 'false'.

Додатково, деякі методи масивів не знаходять NaN, в той час, як інші знаходять.

let arr = [2, 4, NaN, 12];
arr.indexOf(NaN);                      // -1 (false)
arr.includes(NaN);                     // true
arr.findIndex(n => Number.isNaN(n));   // 2

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

Специфікація
{{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}

Підтримка у веб-переглядачах

{{Compat("javascript.builtins.NaN")}}

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