【发布时间】:2016-08-10 19:41:53
【问题描述】:
可以公平地说,每个人都在学习使用后增量编写 for 循环:
for(var i = 0; i < 10; i++) {
console.log(i); // 0..9
}
当我将后增量换成前增量时,我希望得到以下结果:
for(var i = 0; i < 10; ++i) {
console.log(i); // 1..10
}
我的推理:i被初始化为0;当i 小于 10 时,将执行循环体; i 增加到 1 并进入循环体; iwith value 1 打印到控制台;再次评估循环的条件;等等
但输出(至少对于 Chrome 中的 JavaScript)与后增量相同:0..9。这是为什么?是否在 body 运行后执行增量?
【问题讨论】:
-
循环体运行后更新。
-
您需要了解循环的工作原理。引擎进入循环它初始化变量并检查退出条件。一旦它处理完循环中的指令,它就会进行增量,检查退出条件等。这就是为什么使用前或后增量没有真正的区别
-
@jeff 表示后期增量,这很清楚。但是对于一个预增量,我的直觉让我误入歧途。谢谢大家的解释。
标签: javascript for-loop post-increment pre-increment