在Javascript中,我无法理解为什么这两组代码会提供不同的结果:
for (var i = 0, a = []; i++ < 9;) {a.push(i);}
运行此代码后,变量a
如下:[1, 2, 3, 4, 5, 6, 7, 8, 9]
。
但是,此代码返回其他内容:
for (var i = 0, a = []; i < 9; i++) {a.push(i);}
相反,运行此代码后,变量a
如下:[0, 1, 2, 3, 4, 5, 6, 7, 8]
所以,主要问题是:为什么会这样?
感谢您解释这种差异的任何答案。
答案 0 :(得分:2)
这只是for
循环操作发生的顺序。评估三个表达式:
for (before the loop starts; // initialization
before each iteration of the loop; // loop condition
at the end of each iteration of the loop) // loop increment
这使得i++
在相对于循环体的不同时间运行并解释您看到的结果。