Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
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 September 2015.
Die statische MethodeNumber.isNaN() bestimmt, ob der übergebene Wert der ZahlenwertNaN ist, und gibtfalse zurück, wenn die Eingabe nicht vom TypNumber ist. Sie ist eine robustere Version der ursprünglichen globalen FunktionisNaN().
In diesem Artikel
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
Number.isNaN(value)Parameter
Rückgabewert
Der boolesche Werttrue, wenn der gegebene Wert eine Zahl mit dem WertNaN ist. Andernfallsfalse.
Beschreibung
Die FunktionNumber.isNaN() bietet eine bequeme Möglichkeit, auf Gleichheit mitNaN zu prüfen. Beachten Sie, dass Sie nicht auf Gleichheit mitNaN mittels der Operatoren== oder=== testen können, da im Gegensatz zu allen anderen Wertvergleichen in JavaScript diese immerfalse ergeben, wenn ein OperandNaN ist, selbst wenn der andere Operand auchNaN ist.
Dax !== x nur fürNaN unter allen möglichen JavaScript-Werten wahr ist, kannNumber.isNaN(x) auch durch einen Test aufx !== x ersetzt werden, obwohl letzteres weniger lesbar ist.
Im Unterschied zur globalen FunktionisNaN() konvertiert die MethodeNumber.isNaN() den Parameter nicht zwangsweise zu einer Zahl. Dadurch ist es sicher, Werte zu übergeben, die normalerweise inNaN umgewandelt würden, aber nicht tatsächlich denselben Wert wieNaN haben. Das bedeutet auch, dass nur Werte vom TypNumber, die auchNaN sind,true zurückgeben.
Beispiele
>Verwendung von isNaN()
Number.isNaN(NaN); // trueNumber.isNaN(Number.NaN); // trueNumber.isNaN(0 / 0); // trueNumber.isNaN(37); // falseUnterschied zwischen Number.isNaN() und globalem isNaN()
Number.isNaN() versucht nicht, den Parameter in eine Zahl zu konvertieren, sodass Nicht-Zahlen immerfalse zurückgeben. Die folgenden sind allefalse:
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(" ");Das globaleisNaN() zwingt seinen Parameter, zu einer Zahl umgewandelt zu werden:
isNaN("NaN"); // trueisNaN(undefined); // trueisNaN({}); // trueisNaN("blabla"); // trueisNaN(true); // false, this is coerced to 1isNaN(null); // false, this is coerced to 0isNaN("37"); // false, this is coerced to 37isNaN("37.37"); // false, this is coerced to 37.37isNaN(""); // false, this is coerced to 0isNaN(" "); // false, this is coerced to 0Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-number.isnan> |