Decrement (--)
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 Decrement-Operator (--
) dekrementiert (zieht eins ab von) seinen Operand und gibt den Wert vor oder nach dem Dekrement zurück, je nachdem, 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
x--
--x
Beschreibung
Der --
Operator ist für zwei Arten von Operanden überladen: Zahl und BigInt. Er zwingt zuerst den Operanden zu einem numerischen Wert zu werden und testet dann dessen Typ. Er führt ein BigInt-Dekrement durch, wenn der Operand ein BigInt wird; andernfalls führt er ein Zahldekrement durch.
Wird er postfix verwendet, mit Operator nach dem Operanden (zum Beispiel x--
), dekrementiert der Operator und gibt den Wert vor dem Dekrement zurück.
Wird er präfix verwendet, mit Operator vor dem Operanden (zum Beispiel --x
), dekrementiert der Operator und gibt den Wert nach dem Dekrement zurück.
Der Dekrement-Operator kann nur auf Operanden angewendet werden, die Referenzen sind (Variablen und Objekteigenschaften; d.h. gültige Zuweisungsziele). --x
selbst wertet zu einem Wert aus, nicht zu einer Referenz, weshalb Sie keine mehrfachen Dekrement-Operatoren miteinander verketten können.
--(--x); // SyntaxError: Invalid left-hand side expression in prefix operation
Beispiele
Postfix-Dekrement
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-Dekrement
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 |