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 isNaN()-Funktion bestimmt, ob ein Wert NaN ist, und konvertiert den Wert bei Bedarf zunächst in eine Zahl. Da die Umwandlung innerhalb der isNaN()-Funktion überraschend sein kann, bevorzugen Sie möglicherweise die Verwendung von Number.isNaN().
Der zu testende Wert.
true, wenn der gegebene Wert NaN ist, nachdem er in eine Zahl umgewandelt wurde; andernfalls false.
isNaN() ist eine Funktions-Eigenschaft des globalen Objekts.
Für Zahlwerte prüft isNaN(), ob die Zahl der Wert NaN ist. Wenn das Argument der isNaN()-Funktion nicht vom Typ Number ist, wird der Wert zuerst in eine Zahl umgewandelt, und der resultierende Wert wird dann mit NaN verglichen.
Dieses Verhalten von isNaN() bei nicht-numerischen Argumenten kann verwirrend sein! Ein leerer String wird beispielsweise zu 0 umgewandelt, während ein boolean zu 0 oder 1 umgewandelt wird; beide Werte sind intuitiv "keine Zahlen", aber sie ergeben kein NaN, sodass isNaN() false zurückgibt. Daher beantwortet isNaN() weder die Frage "ist die Eingabe der Gleitkommawert NaN" noch die Frage "ist die Eingabe keine Zahl".
Number.isNaN() ist eine zuverlässigere Möglichkeit, um zu testen, ob ein Wert der Zahlenwert NaN ist oder nicht. Alternativ kann der Ausdruck x !== x verwendet werden, und keine der Lösungen unterliegt den falsch-positiven Ergebnissen, die die globale Funktion isNaN() unzuverlässig machen. Um zu testen, ob ein Wert eine Zahl ist, verwenden Sie typeof x === "number".
Die isNaN()-Funktion beantwortet die Frage "ist die Eingabe funktional gleichwertig mit NaN, wenn sie im Zahlenkontext verwendet wird". Wenn isNaN(x) false zurückgibt, können Sie x in einem arithmetischen Ausdruck verwenden, als ob es sich um eine gültige Zahl handelt, die nicht NaN ist. Wenn isNaN(x) true zurückgibt, wird x zu NaN umgewandelt und die meisten arithmetischen Ausdrücke geben NaN zurück (weil sich NaN fortpflanzt). Sie können dies beispielsweise verwenden, um zu testen, ob ein Argument einer Funktion arithmetisch verarbeitbar ist (nutzbar "wie" eine Zahl) und Werte zu behandeln, die nicht wie eine Zahl aussehen, indem Sie einen Fehler werfen, einen Standardwert bereitstellen usw. Auf diese Weise können Sie eine Funktion haben, die die gesamte Vielseitigkeit von JavaScript nutzt, indem sie die Werte je nach Kontext implizit konvertiert.
Hinweis: Der + Operator führt sowohl Zahlenaddition als auch Zeichenkettenverkettung durch. Daher kann der + Operator selbst dann, wenn isNaN() für beide Operanden false zurückgibt, eine Zeichenkette zurückgeben, da er nicht als arithmetischer Operator verwendet wird. Zum Beispiel gibt isNaN("1") false zurück, aber "1" + 1 gibt "11" zurück. Um sicherzustellen, dass Sie mit Zahlen arbeiten, zwingen Sie den Wert in eine Zahl und verwenden Sie Number.isNaN(), um das Ergebnis zu testen.
Beachten Sie, wie isNaN() true für Werte zurückgibt, die nicht der Wert NaN sind, aber auch keine Zahlen:
| ECMAScript® 2027 Language Specification # sec-isnan-number |
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.