Number.isNaN()

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

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
 Mitwirkende an dieser Seite: schlagi123, mazilema, renemaas
 Zuletzt aktualisiert von: schlagi123,