前置自增/自减(++i/--i)先修改后使用,后置(i++/i--)先使用后修改;for循环中二者效果相同,但在while或if条件中前置更安全直观。

JavaScript 中用 ++ 和 -- 运算符控制循环变量,核心是理解它们的**前置与后置行为差异**,避免在条件判断或赋值中出错。
前置自增/自减(++i / --i)立即生效
运算符写在变量前,变量值先加/减 1,再参与后续表达式计算。
- for 循环中常用
++i或i++做步进,效果相同,因为此时不依赖返回值 - 但若用于 while 或 if 判断中,前置更直观:例如
while (++i 表示“先加再比” - 赋值场景下区别明显:
let a = 5; let b = ++a;→a和b都是 6
后置自增/自减(i++ / i--)延迟生效
变量先参与当前表达式,再加/减 1。容易引发逻辑偏差,尤其在复合语句中。
-
let i = 2; console.log(i++);输出 2,之后i变为 3 - 在 for 循环的更新部分写
i++是惯用写法,但本质和++i无性能或功能差别 - 错误示例:
arr[i++] = value;会把value存入旧索引位置,适合构建递增数组;若想存入新位置,应改用arr[++i]
避免在同一个表达式里多次修改同一变量
JavaScript 不规定自增/自减的求值顺序,混用会导致不可预测结果。
- ❌ 危险写法:
let i = 0; let x = i++ + ++i;—— 结果依赖引擎实现,不要这样写 - ✅ 安全写法:拆成多步,比如先
i++,再单独计算或赋值 - 循环中只在更新语句中使用自增/自减,不在条件或循环体中重复操作同一变量
替代方案:显式加减更清晰
当逻辑稍复杂或团队协作时,直接写 i = i + 1 或 i += 1 更易读、更安全。
- 对初学者或维护性要求高的代码,优先选择
i += 1,语义明确且无歧义 - 跳步循环(如每次加 2)自然用
i += 2,比i++写两次更可靠 - 配合 break/continue 使用时,显式赋值能减少意外状态
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











