isFinite()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die Funktion isFinite() prüft, ob ein Wert endlich ist. Falls nötig, wandelt sie den Wert zuvor in eine Zahl um. Eine endliche Zahl ist weder NaN noch ±Infinity. Da die Typumwandlung innerhalb von isFinite() überraschend sein kann, sollten Sie möglicherweise Number.isFinite() bevorzugen.
Probieren Sie es aus
function div(x) {
if (isFinite(1000 / x)) {
return "Number is NOT Infinity.";
}
return "Number is Infinity!";
}
console.log(div(0));
// Expected output: "Number is Infinity!""
console.log(div(1));
// Expected output: "Number is NOT Infinity."
Syntax
isFinite(value)
Parameter
value-
Der zu prüfende Wert.
Rückgabewert
true, es sei denn, der angegebene Wert ist nach der Umwandlung in eine Zahl entweder Infinity, -Infinity oder NaN.
Beschreibung
isFinite() ist eine Funktionseigenschaft des globalen Objekts.
Wenn das Argument der Funktion isFinite() nicht vom Typ Number ist, wird der Wert zunächst in eine Zahl umgewandelt. Anschließend wird der resultierende Wert mit NaN und ±Infinity verglichen. Dieses Verhalten ist ebenso verwirrend wie das von isNaN – beispielsweise ergibt isFinite("1") den Wert true.
Number.isFinite() ist eine zuverlässigere Methode, um zu prüfen, ob ein Wert eine endliche Zahl ist, da die Funktion für jeden Wert, der keine Zahl ist, false zurückgibt.
Beispiele
>isFinite() verwenden
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite(-Infinity); // false
isFinite(0); // true
isFinite(2e64); // true
isFinite(910); // true
// Following would've been false with the more robust Number.isFinite():
isFinite(null); // true, because null is converted to 0
isFinite(""); // true, because empty string is converted to 0
isFinite("123"); // true, because string can be parsed as a number
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-isfinite-number> |