Start · Sprachen · JavaScript · Referenz · Infinity

Infinity

Eigenschaft

Die globale Eigenschaft <code>Infinity</code> repräsentiert den numerischen Wert der positiven Unendlichkeit (<code>+∞</code>).

seit JavaScript ES1 Kategorie: core

Signatur

Infinity

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

Typ
number
Beschreibung
Die Zahl +∞ (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 "number" Infinity -Infinity Infinity NaN -Infinity 0 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)
-3 Infinity

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
42 → isFinite: true Infinity → isFinite: false -Infinity → isFinite: false NaN → isFinite: false 0 → isFinite: true true 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 Funktion isFinite() konvertiert den Wert zuerst in eine Zahl (z. B. isFinite("3")true), während Number.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: Infinity ist nicht NaNisNaN(Infinity) gibt false zurück.