Signatur
Beschreibung
Die statische Methode Number.isInteger() bestimmt, ob der übergebene Wert eine ganze Zahl (Integer) ist.
Ist der Zielwert eine ganze Zahl, wird true zurückgegeben, andernfalls false. Ist der Wert NaN oder Infinity, wird false zurückgegeben. Die Methode gibt außerdem true für Fließkommazahlen zurück, die sich als ganze Zahl darstellen lassen. Sie gibt immer false zurück, wenn der Wert keine Zahl ist.
Beachte, dass manche Zahlenliterale zwar wie Nicht-Ganzzahlen aussehen, tatsächlich aber ganze Zahlen darstellen — bedingt durch die Präzisionsgrenze der ECMAScript-Fließkommazahlen-Kodierung (IEEE-754). Zum Beispiel unterscheidet sich 5.0000000000000001 nur um 1e-16 von 5, was zu klein ist, um dargestellt zu werden. (Zur Referenz: Number.EPSILON speichert den Abstand zwischen 1 und der nächst darstellbaren Fließkommazahl größer als 1, das sind etwa 2.22e-16.) Daher wird 5.0000000000000001 mit der gleichen Kodierung wie 5 dargestellt, wodurch Number.isInteger(5.0000000000000001) den Wert true zurückgibt.
In ähnlichem Sinne verlieren Zahlen in der Größenordnung von Number.MAX_SAFE_INTEGER an Präzision und lassen Number.isInteger auch dann true zurückgeben, wenn es sich nicht um eine ganze Zahl handelt. (Die tatsächliche Schwelle hängt davon ab, wie viele Bits zur Darstellung des Dezimalteils benötigt werden — zum Beispiel ist Number.isInteger(4500000000000000.1) gleich true, aber Number.isInteger(4500000000000000.5) gleich false.)
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | any | — | Der Wert, der auf ganze Zahl geprüft werden soll. |
Rückgabewert
true, wenn der gegebene Wert eine ganze Zahl ist. Andernfalls false.Beispiele
Verwendung von isInteger
Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(99999999999999999999999); // true
Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false
Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false
Number.isInteger(5.0); // true
Number.isInteger(5.000000000000001); // false
Number.isInteger(5.0000000000000001); // true, because of loss of precision
Number.isInteger(4500000000000000.1); // true, because of loss of precision