Number.isNaN()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die statische Methode Number.isNaN() bestimmt, ob der übergebene Wert der Zahlenwert NaN ist, und gibt false zurück, wenn die Eingabe nicht vom Typ Number ist. Sie ist eine robustere Version der ursprünglichen, globalen Funktion isNaN().

Probieren Sie es aus

function typeOfNaN(x) {
  if (Number.isNaN(x)) {
    return "Number NaN";
  }
  if (isNaN(x)) {
    return "NaN";
  }
}

console.log(typeOfNaN("100F"));
// Expected output: "NaN"

console.log(typeOfNaN(NaN));
// Expected output: "Number NaN"

Syntax

js
Number.isNaN(value)

Parameter

value

Der Wert, der auf NaN überprüft werden soll.

Rückgabewert

Der boolesche Wert true, wenn der gegebene Wert eine Zahl mit dem Wert NaN ist. Andernfalls false.

Beschreibung

Die Funktion Number.isNaN() bietet eine bequeme Möglichkeit, NaN zu überprüfen. Beachten Sie, dass Sie NaN nicht mit den Operatoren == oder === auf Gleichheit testen können, da im Gegensatz zu allen anderen Wertvergleichen in JavaScript diese immer false ergeben, wenn ein Operand NaN ist, selbst wenn der andere Operand ebenfalls NaN ist.

Da x !== x nur für NaN unter allen möglichen JavaScript-Werten wahr ist, kann Number.isNaN(x) auch durch einen Test auf x !== x ersetzt werden, obwohl Letzteres weniger lesbar ist.

Im Gegensatz zur globalen Funktion isNaN() erzwingt die Methode Number.isNaN() keine Konvertierung des Parameters in eine Zahl. Dies macht es sicher, Werte zu übergeben, die normalerweise in NaN konvertiert würden, aber tatsächlich nicht denselben Wert wie NaN haben. Dies bedeutet auch, dass nur Werte des Typs Number, die auch NaN sind, true zurückgeben.

Beispiele

Verwendung von isNaN()

js
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0); // true
Number.isNaN(37); // false

Unterschied zwischen Number.isNaN() und global isNaN()

Number.isNaN() versucht nicht, den Parameter in eine Zahl umzuwandeln, sodass Nicht-Zahlen immer false zurückgeben. Folgende Beispiele ergeben alle false:

js
Number.isNaN("NaN");
Number.isNaN(undefined);
Number.isNaN({});
Number.isNaN("blabla");
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");

Die globale Funktion isNaN() wandelt ihren Parameter in eine Zahl um:

js
isNaN("NaN"); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN("blabla"); // true
isNaN(true); // false, this is coerced to 1
isNaN(null); // false, this is coerced to 0
isNaN("37"); // false, this is coerced to 37
isNaN("37.37"); // false, this is coerced to 37.37
isNaN(""); // false, this is coerced to 0
isNaN(" "); // false, this is coerced to 0

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-number.isnan

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
isNaN

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch