Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die NaN globale Eigenschaft ist ein Wert, der „Nicht eine Zahl“ (Not-a-Number) darstellt.
Der gleiche Zahlenwert wie Number.NaN.
| Schreibbar | nein |
| Aufzählbar | nein |
| Konfigurierbar | nein |
NaN ist eine Eigenschaft des globalen Objekts. In anderen Worten, es ist eine Variable im globalen Bereich.
In modernen Browsern ist NaN eine nicht konfigurierbare, nicht beschreibbare Eigenschaft. Auch wenn dies nicht der Fall ist, vermeiden Sie es, sie zu überschreiben.
Es gibt fünf verschiedene Typen von Operationen, die NaN zurückgeben:
NaN und sein Verhalten wurden nicht von JavaScript erfunden. Seine Semantik in der Gleitkommaarithmetik (einschließlich dass NaN !== NaN) ist durch IEEE 754 spezifiziert. Zu den Verhaltensweisen von NaN gehören:
NaN ist auch einer der falsy Werte in JavaScript.
Um festzustellen, ob ein Wert NaN ist, verwenden Sie Number.isNaN() oder isNaN(), um am deutlichsten zu bestimmen, ob ein Wert NaN ist — oder, da NaN der einzige Wert ist, der ungleich zu sich selbst ist, können Sie einen Selbstvergleich wie x !== x durchführen.
Beachten Sie jedoch den Unterschied zwischen isNaN() und Number.isNaN(): Ersteres gibt true zurück, wenn der Wert momentan NaN ist oder NaN wird, nachdem es zu einer Zahl gezwungen wurde, während Letzteres nur dann true zurückgibt, wenn der Wert momentan NaN ist:
Aus dem gleichen Grund führt die Verwendung eines BigInt-Werts zu einem Fehler mit isNaN() und nicht mit Number.isNaN():
Zusätzlich können einige Array-Methoden NaN nicht finden, während andere dies können. Namentlich die Methoden zum Finden von Indizes (indexOf(), lastIndexOf()) können NaN nicht finden, während die Methoden zum Finden von Werten (includes()) dies können:
Für weitere Informationen über NaN und dessen Vergleich siehe Vergleich von Gleichheit und Identität.
Es ist möglich, zwei Gleitkommazahlen mit unterschiedlichen Binärdarstellungen zu erzeugen, die beide NaN sind, denn in der IEEE 754 Kodierung ist jede Gleitkommazahl mit Exponent 0x7ff und einer nicht-null Mantisse NaN. In JavaScript können Sie Bit-Ebene-Manipulationen mit typisierten Arrays durchführen.
NaN breitet sich durch mathematische Operationen aus, daher reicht es in der Regel aus, am Ende der Berechnung einmal auf NaN zu testen, um Fehlerbedingungen zu erkennen. Der einzige Fall, in dem NaN unbemerkt entkommt, ist bei der Verwendung von Potenzierung mit einem Exponenten von 0, was sofort 1 zurückgibt, ohne den Wert der Basis zu testen.
| ECMAScript® 2027 Language Specification # sec-value-properties-of-the-global-object-nan |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.