JavaScript/Objekte/Number/isInteger

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Methode isInteger() des Number-Objekts prüft, ob ein Wert von Typ 'number' ist und einen gültigen Integer-Wert, d.h. eine Zahl ohne Nachkommastellen, darstellt.

Syntax

Number.isInteger(wert);

  • wert: Der zu prüfende Wert.

Rückgabewert

false
wenn typeof wert != 'number' ist
wenn wert einen der numerischen Ausnahmewerte NaN, Infinity oder ‑Infinity enthält.
wenn wert eine Zahl mit Nachkommastellen ist.
true
für alle anderen number-Werte.

Für die Feststellung, ob der übergebene Wert Nachkommastellen hat, sagt die ECMAScript 2015-Spezifikation, dass Math.abs(wert) mit Math.floor(Math.abs(wert)) zu vergleichen ist, d.h. der Wert wird zur 0 hin gerundet. Ergibt der Vergleich einen Unterschied, besitzt wert Nachkommastellen. Weshalb die Spezifikation auf dem Vergleich der Beträge besteht, ist nicht ganz klar; die bekannten Polyfills für diese Methode vernachlässigen diesen Aspekt.

Polyfill

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

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