Dekrement (--)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Der Dekompositionsoperator (--) dekrementiert (subtrahiert eins von) seinem Operanden und gibt den Wert entweder vor oder nach der Dekomposition zurück, abhängig davon, wo der Operator platziert ist.

Probieren Sie es aus

let x = 3;
const y = x--;

console.log(`x:${x}, y:${y}`);
// Expected output: "x:2, y:3"

let a = 3;
const b = --a;

console.log(`a:${a}, b:${b}`);
// Expected output: "a:2, b:2"

Syntax

js
x--
--x

Beschreibung

Der -- Operator ist für zwei Arten von Operanden überladen: Nummer und BigInt. Er zwingt zunächst den Operanden zu einem numerischen Wert und prüft dessen Typ. Er führt eine BigInt-Dekomposition durch, wenn der Operand ein BigInt wird; ansonsten führt er eine numerische Dekomposition durch.

Wird der Operator als Postfix verwendet, also nach dem Operanden (zum Beispiel x--), dekrementiert der Operator und gibt den Wert vor der Dekomposition zurück.

Wird der Operator als Präfix verwendet, also vor dem Operanden (zum Beispiel --x), dekrementiert der Operator und gibt den Wert nach der Dekomposition zurück.

Der Dekrement-Operator kann nur auf Operanden angewendet werden, die Referenzen sind (Variablen und Objekteigenschaften, d.h. gültige Zuordnungsziele). --x selbst wird zu einem Wert ausgewertet, nicht zu einer Referenz, daher können Sie nicht mehrere Dekrement-Operatoren hintereinander verkettet verwenden.

js
--(--x); // SyntaxError: Invalid left-hand side expression in prefix operation

Beispiele

Postfix-Dekomposition

js
let x = 3;
const y = x--;
// x is 2; y is 3

let x2 = 3n;
const y2 = x2--;
// x2 is 2n; y2 is 3n

Präfix-Dekomposition

js
let x = 3;
const y = --x;
// x is 2; y = 2

let x2 = 3n;
const y2 = --x2;
// x2 is 2n; y2 is 2n

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-postfix-decrement-operator

Browser-Kompatibilität

Siehe auch