前置自增/自减(++a、--a)先修改后返回新值,后置(a++、a--)先返回原值再修改;优先级高于加减乘除,但多次修改同一变量属未定义行为。

JavaScript 中的自增(++)和自减(--)运算符,关键在于区分 前置 和 后置 两种写法——它们在表达式中参与运算时的返回值不同,直接影响结果。
前置自增/自减(如 ++a、--a)
先修改变量的值,再将新值用于整个表达式。
-
let a = 5; let b = ++a;→a变成6,b也等于6 -
let x = 10; console.log(--x + 2);→ 先把x减为9,再计算9 + 2,输出11
后置自增/自减(如 a++、a--)
先用变量的当前值参与表达式运算,再修改变量本身。
-
let a = 5; let b = a++;→b得到5,之后a才变成6 -
let y = 3; console.log(y-- * 4);→ 先用y的原始值3计算3 * 4 = 12,再把y改为2
在复杂表达式中要特别注意执行顺序
自增/自减不是“原子操作”,和其他运算符混合时,优先级和结合性会影响结果。它们的优先级高于加减乘除,但低于括号和点号等。
-
let n = 2; console.log(n++ + ++n);→ 步骤:取n=2参与相加(后置),然后n变3;接着++n先让n变4,再取4;最终2 + 4 = 6 - 避免在单个表达式中多次修改同一变量(如
i++ + i++),行为在不同 JS 引擎中可能不一致,属于未定义行为,应拆解为多步
实际使用建议
- 循环中常用
i++或++i,效果一样(因为没用到返回值),但习惯上用i++ - 如果需要“先用再变”,选后置;需要“先变再用”,选前置
- 当逻辑依赖返回值时(比如赋值、函数参数、条件判断),务必确认是前置还是后置
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











