JavaScript/Objekte/Number/isNaN

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Methode isNaN() des Number-Objekts prüft, ob ein Wert vom Typ 'number' ist und eine gültige Zahl darstellt. Im Gegensatz zur globalen isNaN-Funktion versucht Number.isNaN() keine Typkonvertierung.

Syntax

Number.isNaN(wert);

  • wert: Der zu prüfende Wert.


Rückgabewert

false
wenn typeof wert != 'number' ist
wenn wert etwas anderes als den numerischen Ausnahmewert NaN enthält.
true
wenn wert NaN enthält (nicht: wenn wert === NaN ist, denn ein Vergleich mit NaN ergibt immer false

Polyfill

Die isNaN-Methode des Number-Objekts wurde mit ECMAScript 2015 (ES6) eingeführt. Wenn Sie ältere Browser unterstützen möchten, können Sie auf einfache Weise einen Polyfill erzeugen:

Polyfill für Number.isNaN
if (!Number.isNaN) {
   Number.isNaN = function(value) {
      return typeof value === 'number' && isNaN(value);
   }
}

Dieser Polyfill funktioniert ebenfalls, ist aber schwer verständlich. Er nutzt aus, dass NaN der einzige Wert ist, der nicht gleich mit sich selbst ist.

Alternativer Polyfill für Number.isNaN
if (!Number.isNaN) {
   Number.isNaN = function(value) {
      return value !== value;
   }
}