因此以下两个函数打印出完全相同的结果。
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 循环的编程语言的标准行为?
最佳答案
for
中的第三个表达式循环 header 在每次迭代之后 进行评估。因此:
-
i
初始化为1
- 循环测试表达式,
i <= 3
, 被评估(发现是true
) - 循环体执行完毕
-
i++
或++i
发生
除了语法上的细微差别外,这正是 1976 年 C 程序中发生的情况。
关于javascript - 为什么++i 在 for 循环之前不递增 i?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849375/