Vin*_*ney 3 javascript for-loop
任何人都可以告诉我为什么for即使在失败的迭代中循环增量?
for (var n = 0; n <3; n++) {
alert(n); // displays 0 , 1 , 2
}
alert(n); // gives 3
Run Code Online (Sandbox Code Playgroud)
但不应该这样
if(condition):
//desired stuff
increment;
else:
exit;
Run Code Online (Sandbox Code Playgroud)
我很少使用迭代变量,我只是在循环完成后抛弃它们但在这种情况下发现它是导致bug的原因
Bat*_*eba 10
概念性地n++在循环体的最终语句之后调用,并且在循环体的第一个语句之前评估停止条件.
所以你的代码相当于
for (var n = 0; n < 3; ) {
alert(n);
n++;
}
Run Code Online (Sandbox Code Playgroud)
从这个角度来看,n一旦循环存在,原因就是3应该是显而易见的.
请注意,在javascript中,n 漏出了for循环.