递增 (++)

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

递增 (++) 运算符递增(给其操作数加一)其操作数,并根据运算符的位置,返回递增前或递增后的值。

试一试

let x = 3;
const y = x++;

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

let a = 3;
const b = ++a;

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

语法

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 4; y is 3

let x2 = 3n;
const y2 = x2++;
// x2 is 4n; y2 is 3n

前缀递增

js
let x = 3;
const y = ++x;
// x is 4; y is 4

let x2 = 3n;
const y2 = ++x2;
// x2 is 4n; y2 is 4n

规范

规范
ECMAScript® 2026 语言规范
# sec-postfix-increment-operator

浏览器兼容性

另见