为什么++我不会在循环前增加i?

时间:2016-03-07 16:49:20

标签: javascript syntax

因此,以下两个函数会打印出相同的结果。

console.log("i++");
 for (i=1; i<=3; i++) {
  console.log(i); // 1, 2
}
console.log("++i");
for (i=1; i<=3; ++i) {
  console.log(i); // 1, 2
}

这非常直观,因为我特别要求后增加一个并按增量增加另一个。 在for循环内运行之前增加值是非常理想的行为。这个行为是否一致?,这个javascript是特定的还是这是使用++ i,i ++语法和for循环的编程语言的标准行为?

1 个答案:

答案 0 :(得分:6)

for循环标头中的第三个表达式在每次迭代后进行评估。因此:

  1. i已初始化为1
  2. 评估循环测试表达式i <= 3(发现为true
  3. 执行循环体
  4. i++++i发生
  5. 除了较小的语法差异外,这正是1976年C程序中发生的事情。