Signatur
Beschreibung
Die statische Methode Number.isNaN() ermittelt, ob der übergebene Wert der Number-Wert NaN ist, und gibt false zurück, wenn die Eingabe nicht vom Typ Number ist. Sie ist eine robustere Version der ursprünglichen, globalen isNaN()-Funktion.
Die Funktion Number.isNaN() bietet eine bequeme Möglichkeit, auf Gleichheit mit NaN zu prüfen. Beachte, dass du Gleichheit mit NaN weder mit dem ==- noch mit dem ===-Operator testen kannst, denn im Gegensatz zu allen anderen Wertvergleichen in JavaScript ergeben diese immer false, sobald einer der Operanden NaN ist, selbst wenn der andere Operand ebenfalls NaN ist.
Da x !== x unter allen möglichen JavaScript-Werten nur für NaN wahr ist, kann Number.isNaN(x) auch durch einen Test x !== x ersetzt werden, wobei letzterer weniger lesbar ist.
Im Gegensatz zur globalen isNaN()-Funktion konvertiert die Methode Number.isNaN() den Parameter nicht zwangsweise in eine Zahl. Das macht es sicher, Werte zu übergeben, die normalerweise zu NaN konvertiert würden, aber nicht tatsächlich denselben Wert wie NaN haben. Das bedeutet auch, dass nur Werte vom Typ Number, die zugleich NaN sind, true zurückgeben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | any | — | Der Wert, der auf NaN geprüft werden soll. |
Rückgabewert
true, wenn der gegebene Wert eine Zahl mit dem Wert NaN ist. Andernfalls false.Beispiele
isNaN() verwenden
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0); // true
Number.isNaN(37); // false
Unterschied zwischen Number.isNaN() und globalem isNaN()
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(" ");
Globales isNaN() konvertiert seinen Parameter zu einer Zahl
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