这是10的一个非常基本的反击:
for (var i = 1; i <= 10; i++) {
console.log (i); // outputs 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
}
console.log(i);
我希望i在全局空间中的值为10.它是11.我能想到的唯一原因是它被指定为11来打破循环i&lt; = 10。
这是正确的理由吗?
答案 0 :(得分:1)
是的,for
循环以这种方式工作:
for (/*initial conditions set at beginning of loop*/;
/*break condition checked before entering the loop each time*/;
/*command to execute at the end of each loop*/)
{
// stuff to do during loop
}
所以你的假设是正确的,for循环一直运行到i = 11
,因为这是循环第一次达到中断条件。
创建for循环以避免重复while或do / while循环。上述循环可以被认为是:
/*initial conditions set at beginning of loop*/
while (/*break condition checked before entering the loop each time*/){
// stuff to do during loop
/*command to execute at the end of each loop*/
}
答案 1 :(得分:0)
表单的for
循环:
for (<inits>; <tests>; <repeats>) {
<body>;
}
相当于:
<inits>;
while (<tests>) {
<body>;
<repeats>;
}
在循环的最后一次迭代中,将执行i++
以将i
设置为11.然后当它返回到循环的顶部时,将执行测试i <= 10
。由于这是错误的,循环终止。此时,i
仍为11。