--- title: NaN slug: Web/JavaScript/Reference/Global_Objects/NaN tags: - JavaScript - NaN - Referencia - Változó translation_of: Web/JavaScript/Reference/Global_Objects/NaN ---
{{jsSidebar("Objects")}}

A globális NaN egy olyan változó, ami a Not-A-Number típusú értéket reprezentálja.

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

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

Leírás

A NaN a globális objektum része. Más szavakkal a globális scope egyik változója.

A NaN eredeti jelentése: Not-A-Number (nem szám). Értéke a {{jsxref("Number.NaN")}}-nal egyenlő. Modern böngészőkben a NaN nem beállítható, nem írható változó. Ellenkező esetben sem tanácsolt felüldefiniálni. A NaN közvetlen használata egy programban igen ritka.

Öt különböző típusú műveletet különböztethetünk meg, aminek az eredménye NaN:

Példák

Tesztelés NaN esetre

NaN nem összehasonlítható (az ==, !=, ===, és !== operátorokkal) semmilyen más értékkel. -- beleértve magát a NaN értéket. Ahhoz, hogy valamiről biztosan eldöntsük, hogy NaN a {{jsxref("Number.isNaN()")}}, illetve a {{jsxref("Global_Objects/isNaN", "isNaN()")}} függvényeket használhatjuk. Alternatívaként összehasonlíthatjuk a változót saját magával, mert a NaN, és csak is a NaN az az érték, ami nem egyenlő önmagával.

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

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

Fontos felhívni a figyelmet az isNaN() és a Number.isNaN() közötti különbséget: míg az előbbi true-val tér vissza akkor is, ha az érték éppen NaN, és akkor is ha az a kiértékelés után NaN-ná válik, úgy az utóbbi csak akkor tér vissza true-val, ha az érték éppen NaN:

isNaN('hello world');        // true
Number.isNaN('hello world'); // false

Továbbá, bizonyos tömbfüggvények nem használhatók a NaN keresésére, míg vannak, amik igen.

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

Specifikáció

Specifikáció
{{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}

Böngésző kompatibilitás

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

Lásd még