遞減 (--)
遞減 (--) 運算子遞減(從其運算元中減去一)其運算元,並根據運算子放置的位置返回遞減之前或之後的值。
試一試
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"
語法
js
x--
--x
描述
-- 運算子針對兩種型別的運算元進行了過載:number 和 BigInt。它首先將其運算元強制轉換為數值並測試其型別。如果運算元變為 BigInt,則執行 BigInt 遞減;否則,執行 number 遞減。
如果用作字尾,即運算子在運算元之後(例如 x--),則遞減運算子在遞減前返回其值。
如果用作字首,即運算子在運算元之前(例如 --x),則遞減運算子在遞減後返回其值。
遞減運算子只能應用於引用(變數和物件屬性;即有效的賦值目標)的運算元。--x 本身評估為一個值,而不是一個引用,因此你不能將多個遞減運算子連結在一起。
js
--(--x); // SyntaxError: Invalid left-hand side expression in prefix operation
示例
字尾遞減
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
字首遞減
js
let x = 3;
const y = --x;
// x is 2; y = 2
let x2 = 3n;
const y2 = --x2;
// x2 is 2n; y2 is 2n
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-postfix-decrement-operator |
瀏覽器相容性
載入中…