Signatur
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
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
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);
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
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);
}
// 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
numberverwendet, 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 einemReferenceError. - Browser-Kompatibilität:
/=ist seit ES1 verfügbar und in allen Browsern und JavaScript-Umgebungen unterstützt. DieBigInt-Unterstützung erfordert ES2020 (Baseline: alle modernen Browser).