Die globale NaN Eigenschaft ist ein Wert, der Not-A-Number (keine Zahl) repräsentiert.

Eigenschaftsattribute von NaN
Schreibbar nein
Aufzählbar nein
Konfigurierbar nein

Syntax

NaN

Beschreibung

NaN ist eine Eigenschaft des globalen Objektes.

Der initiale Wert von NaN ist Not-A-Number — der gleiche Wert wie Number.NaN. In modernen Browsern ist NaN eine nicht konfigurierbare und nicht überschreibbare Eigenschaft. Immer wenn dieses nicht der Fall ist, sollte es vermieden werden, diese zu überschreiben.

Der Einsatz von NaN in Programmen ist selten. Es wird als Rückgabewert genutzt, wenn Math Funktionen fehlschlagen (Math.sqrt(-1)) oder wenn der Versuch, eine Zeichenkette in eine Nummer zu konvertieren, fehlschlägt (parseInt("blabla")).

Tests mit NaN

Gleichheitsoperatoren (==, !=, === und !==) können nicht genutzt werden, um auf NaN zu prüfen. Stattdessen können die Methoden Number.isNaN() oder isNaN() eingesetzt werden. Alternativ kann ein Vergleich auf sich selbst durchgeführt werden, weil nur NaN mit sich selbst verglichen ungleich ist.

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

Die Unterschiede zwischen isNaN() and Number.isNaN() sind zu beachten: ersteres wird true zurückgeben, wenn der übergebene Wert NaN ist, oder wenn er NaN wird, nachdem er zu einer Zahl umgewandelt wurde, während letzteres nur dann true zurückgibt, wenn der aktuelle Wert NaN ist:

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

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 1st Edition (ECMA-262) Standard Initiale Definition. Implementiert in JavaScript 1.3
ECMAScript 5.1 (ECMA-262)
Die Definition von 'NaN' in dieser Spezifikation.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'NaN' in dieser Spezifikation.
Standard  
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'NaN' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

FunktionChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung Ja Ja1 Ja Ja Ja
FunktionAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Grundlegende Unterstützung Ja Ja Ja4 Ja Ja Ja

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123, boppy, SphinxKnight, fscholz, Jens_Verneuer
Zuletzt aktualisiert von: schlagi123,