Signatur
Beschreibung
Infinity ist eine schreibgeschützte globale Eigenschaft vom Typ number, die den mathematischen Wert der positiven Unendlichkeit darstellt. Sie entspricht Number.POSITIVE_INFINITY und entsteht typischerweise bei Berechnungen, die den darstellbaren Zahlenbereich von JavaScript überschreiten – etwa bei einer Division durch 0 oder beim Überlauf eines sehr großen Wertes.
Der negative Gegenwert ist -Infinity (entspricht Number.NEGATIVE_INFINITY). Arithmetische Operationen mit Infinity folgen den mathematischen Regeln der Unendlichkeit: Infinity + 1 ergibt wieder Infinity, Infinity - Infinity ergibt NaN, und 1 / Infinity ergibt 0.
Um zu prüfen, ob ein Wert endlich ist, empfiehlt sich die Funktion isFinite() oder Number.isFinite(). Ein direkter Vergleich mit === Infinity ist möglich und zuverlässig, da Infinity stets denselben Referenzwert besitzt.
Infinity ist keine eigene Klasse oder ein Objekt, sondern eine primitive Zahl (typeof Infinity === "number"). Sie taucht häufig als Startwert in Minimum-Suchen oder als Sentinel-Wert in Algorithmen auf.
Rückgabewert
+∞ (positive Unendlichkeit). Entspricht Number.POSITIVE_INFINITY.Beispiele
Grundlegende Verwendung und arithmetische Regeln
console.log(Infinity); // Infinity
console.log(typeof Infinity); // "number"
console.log(1 / 0); // Infinity
console.log(-1 / 0); // -Infinity
console.log(Infinity + 1); // Infinity
console.log(Infinity - Infinity); // NaN
console.log(Infinity * -1); // -Infinity
console.log(1 / Infinity); // 0
console.log(Infinity === Number.POSITIVE_INFINITY); // true
Infinity als Startwert bei einer Minimum-Suche
const findMin = (numbers) => {
let min = Infinity;
for (const n of numbers) {
if (n < min) min = n;
}
return min;
};
console.log(findMin([42, 7, 99, -3, 15])); // -3
console.log(findMin([])); // Infinity (leeres Array)
Prüfen auf Unendlichkeit mit isFinite()
const values = [42, Infinity, -Infinity, NaN, 0];
values.forEach((v) => {
const endlich = Number.isFinite(v);
console.log(`${v} → isFinite: ${endlich}`);
});
// Direkte Vergleiche
console.log(Infinity === Infinity); // true
console.log(-Infinity < Infinity); // true
// Wichtig · Fallstricke
Schreibschutz: Infinity ist seit ES5 eine nicht-konfigurierbare, nicht-beschreibbare Eigenschaft des globalen Objekts. Zuweisungen wie Infinity = 42 schlagen im Strict Mode mit einem TypeError fehl und werden im normalen Modus still ignoriert.
isFinite()vs.Number.isFinite(): Die globale FunktionisFinite()konvertiert den Wert zuerst in eine Zahl (z. B.isFinite("3")→true), währendNumber.isFinite()keine Typumwandlung vornimmt und daher sicherer ist.JSON.stringify(Infinity)gibt"null"zurück, da JSON keine Unendlichkeit kennt. Das kann zu unerwarteten Datenverlusten führen.- Vergleich mit
NaN:Infinityist nichtNaN–isNaN(Infinity)gibtfalsezurück.