任何人都可以解释这里发生了什么?
for (var i = 0; i < 10; i++) { /* ... */ } console.log(i); //expect 9 as loop states i < 10, however it shows 10
我希望i
记录的时候会显示值为9.据我所知,循环将从0-9运行,然后在循环声明时停止i < 10
.但是,当console.log(i)
它显示时10
.任何人都可以解释为什么会这样吗?
增量发生在最后一次检查之前.
换句话说,循环结束当且仅当i >= 10
,因此在循环结束后,i
必须至少为10.
循环发生如下:
组 var i = 0;
检查是否i < 10
(true),执行循环.
执行i++
.
重复步骤2和3,直到i < 10
为假(在这种情况下,直到i = 10
).