Die Number.isNaN()
Methode stellt fest, ob ein ihr übergebener Wert NaN
ist. Dieses ist eine robustere Version der globalen Methode isNaN()
Syntax
Number.isNaN(testWert)
Parameter
testWert
- Der Wert, der auf
NaN
getestet werden soll.
Rückgabewert
Ein Boolean
der angibt, ob ein Wert NaN
ist oder nicht.
Beschreibung
Weil beide Gleichheitsoperatoren, ==
und ===
, den Vergleich, ob NaN
gleich NaN
ist, zu false
auswerten, hat die Methode Number.isNaN()
an Bedeutung gewonnen. Diese Situation ist anders als bei allen anderen Vergleichen von Werten in JavaScript.
Im Vergleich zu der globalen Methode isNaN()
hat die Methode Number.isNaN()
nicht das Problem, dass Werte zu einer Nummer konvertiert werden. Das bedeutet, das Werte, die normalerweise zu NaN
konvertiert würden, aber momentan nicht dem Wert NaN
entsprechen, ohne Probleme der Methode übergeben werden können. Das wiederum bedeutet, dass nur Werte vom Typ Number
, die zudem NaN
entsprechen true
als Resultat haben.
Beispiele
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // everything else: false Number.isNaN(undefined); Number.isNaN({}); Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN('37'); Number.isNaN('37.37'); Number.isNaN(''); Number.isNaN(' '); Number.isNaN('NaN'); Number.isNaN('blabla'); // e.g. this would have been true with isNaN()
Polyfill
Number.isNaN = Number.isNaN || function(value) {
return typeof value === "number" && isNaN(value);
}
// Or
Number.isNaN = Number.isNaN || function(value) {
return value !== value;
}
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Number.isnan' in dieser Spezifikation. |
Standard | Initiale Definition. |
ECMAScript 2017 Draft (ECMA-262) Die Definition von 'Number.isnan' in dieser Spezifikation. |
Entwurf |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 25 | 15 (15) | Nicht unterstützt | (Ja) | Nicht unterstützt |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | Nicht unterstützt | ? | 15.0 (15) | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
Siehe auch
- Das
Number
Objekt.