前置自增(++i)先将变量加1再返回新值,后置自增(i++)先返回旧值再将变量加1;两者均使变量最终加1,区别仅在于表达式返回值,单独使用时等价,参与赋值或计算时行为不同。

前置自增(++i)返回新值
运算符写在变量前面时,JavaScript 会先将变量加 1,再把加完后的值作为整个表达式的返回值。比如 let i = 3; let a = ++i;,执行后 i 是 4,a 也是 4。因为 ++i 的返回值就是自增之后的结果。
后置自增(i++)返回旧值
运算符写在变量后面时,JavaScript 先把变量当前的值作为表达式结果返回,之后才对变量加 1。比如 let i = 3; let a = i++;,执行后 i 是 4,但 a 是 3。i++ 的返回值永远是自增前的原始值。
变量本身都变了,区别只在“谁拿到什么值”
无论用哪种形式,变量自身的值最终都会被加 1。差异只出现在它所处的表达式中:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- 如果只是单独写 i++ 或 ++i,效果完全一样
- 一旦参与赋值、计算或函数调用(如 arr[i++] 或 console.log(++i)),返回值不同就会直接影响逻辑
- 常见陷阱:用 tracker.innerHTML = i++ 会导致页面显示滞后一帧,应改用 ++i
for 循环里为什么 i++ 和 ++i 没区别
因为在 for 的步进位置(for (let i = 0; i ),这个表达式的结果不被任何地方使用。循环只关心“执行自增动作”,不依赖它的返回值。所以两种写法行为一致,输出都是 0 到 4。
立即学习“Java免费学习笔记(深入)”;

















