Start · Sprachen · JavaScript · Referenz · Division-Zuweisung (/=)

Division-Zuweisung (/=)

Operator

Der Division-Zuweisungsoperator <code>/=</code> dividiert den linken Operanden durch den rechten und weist das Ergebnis dem linken Operanden zu.

seit JavaScript ES1 Kategorie: syntax

Signatur

x /= y

Beschreibung

Der Division-Zuweisungsoperator (/=) ist eine Kurzschreibweise für die kombinierte Operation aus Division und Zuweisung. Der Ausdruck x /= y ist semantisch äquivalent zu x = x / y — der Wert von x wird durch y geteilt und das Ergebnis direkt wieder in x gespeichert.

Der Operator arbeitet mit allen numerischen Typen (number und BigInt). Bei regulären Zahlen liefert eine Division durch 0 Infinity (bzw. -Infinity bei negativem Zähler) oder NaN, wenn auch der Zähler 0 ist. Bei BigInt wird ganzzahlig dividiert; eine Division durch 0n wirft einen RangeError.

Typischerweise wird /= eingesetzt, wenn ein Wert schrittweise skaliert, normiert oder in kleinere Einheiten umgerechnet werden soll — etwa beim Umrechnen von Pixeln in Prozent, beim Mitteln von Summen oder bei physikalischen Berechnungen. Der Operator verbessert die Lesbarkeit und spart Tipparbeit gegenüber der expliziten Form.

Wie bei allen zusammengesetzten Zuweisungsoperatoren muss die Variable vor der ersten Verwendung deklariert sein; ein Einsatz auf einer nicht deklarierten Variable im Strict Mode führt zu einem ReferenceError.

Parameter

Name Typ Default Beschreibung
$x Pflicht number | bigint Der linke Operand (Dividend). Muss eine beschreibbare Variable, Objekt-Eigenschaft oder Array-Element sein. Empfängt nach der Operation den Quotienten.
$y Pflicht number | bigint Der rechte Operand (Divisor). Darf nicht 0 (bei number) bzw. 0n (bei BigInt) sein, um undefinierte Ergebnisse oder Fehler zu vermeiden.

Rückgabewert

Typ
number | bigint
Beschreibung
Der Quotient aus x / y, der gleichzeitig als neuer Wert von x gespeichert wird.

Beispiele

Grundlegende Verwendung mit Zahlen

let preis = 100;
preis /= 4;          // 100 / 4
console.log(preis);  // 25

let distanz = 7.5;
distanz /= 2.5;      // 7.5 / 2.5
console.log(distanz); // 3
25 3

Normierung eines Arrays (Werte auf 0–1 skalieren)

const messwerte = [200, 450, 100, 350];
const maximum = Math.max(...messwerte);

const normiert = messwerte.map(wert => {
  let v = wert;
  v /= maximum;  // Jeder Wert wird durch das Maximum geteilt
  return +v.toFixed(4);
});

console.log(normiert);
[0.4444, 1, 0.2222, 0.7778]

Division durch null – Sonderfälle bei number

let a = 10;
a /= 0;
console.log(a);  // Infinity

let b = -5;
b /= 0;
console.log(b);  // -Infinity

let c = 0;
c /= 0;
console.log(c);  // NaN
Infinity -Infinity NaN

Einsatz mit BigInt

let großeZahl = 1_000_000n;
großeZahl /= 1_000n;       // Ganzzahlige Division
console.log(großeZahl);    // 1000n

// Division durch 0n wirft RangeError
try {
  let x = 5n;
  x /= 0n;
} catch (e) {
  console.error(e.constructor.name + ':', e.message);
}
1000n RangeError: Division by zero

// Wichtig · Fallstricke

Gemischte Typen: Das Mischen von number und BigInt (z. B. let x = 5n; x /= 2;) wirft einen TypeError. Beide Operanden müssen denselben Typ haben.

  • Gleitkomma-Ungenauigkeiten: Da JavaScript den IEEE-754-Standard für number verwendet, können Divisionen zu nicht-exakten Fließkommaergebnissen führen, z. B. 0.1 / 0.3 ≈ 0.33333…. Für exakte Dezimalrechnung empfiehlt sich eine Bibliothek wie decimal.js.
  • Strict Mode: Das Schreiben auf eine nicht deklarierte Variable (z. B. nichtDeklariert /= 2) führt im Strict Mode zu einem ReferenceError.
  • Browser-Kompatibilität: /= ist seit ES1 verfügbar und in allen Browsern und JavaScript-Umgebungen unterstützt. Die BigInt-Unterstützung erfordert ES2020 (Baseline: alle modernen Browser).