Javascript,For循环:返回'i'值与存储的值不同

时间:2015-04-29 09:15:40

标签: javascript for-loop alert

在此循环中,alert(i)提醒12,并且firebug显示 10 作为最终结果。

 for(var i=0;i<=10;i=i+2){
      document.write=i;
    }

    alert(i);

3 个答案:

答案 0 :(得分:5)

每次循环迭代后,

i都会递增。当条件<= 10失败时,循环中断:

0 => loop gets executed, i incremented with 2
2 => loop gets executed, i incremented with 2
4 => loop gets executed, i incremented with 2
6 => loop gets executed, i incremented with 2
8 => loop gets executed, i incremented with 2
10 => loop gets executed, i incremented with 2
12 => loop breaks => i remains at 12

答案 1 :(得分:4)

但这是正确的。

在开始i=0,我们正在迭代并在每个循环中添加2。

当我们达到10时,我们仍处于这种状态,所以我们再做一次循环。现在是i==12,但这种情况会告诉我们走出循环。

因此在制动出循环i==12之后。

将其视为代码:

i==0 //inside loop
i==2 //inside loop
i==4 //inside loop
i==6 //inside loop
i==8 //inside loop
i==10 //inside loop - we will add 2 once more time
i==12 //we are outside the loop, because now i>10

答案 2 :(得分:1)

你的for循环以2为增量上升。

0 2 4 6 8 10个
12

10仍然'小于等于10',因此for循环继续运行一次,直到达到12,条件不再为真。

将您的代码更改为

for(var i=0;i<10;i=i+2){
  document.write=i;
}

alert(i);