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 |
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
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 (ECMA-262) Die Definition von 'NaN' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser