首页 > 解决方案 > javascript for循环执行顺序

问题描述

任何人都可以告诉我这些东西..所以我正在从这个网站阅读一篇关于关闭的文章https://wsvincent.com/javascript-closure-settimeout-for-loop/

文章说明了这个常规 for 循环的幕后发生的事情

for (var i = 1; i < 5; i++) {
  console.log(i);  // 1 2 3 4
}

// 来自文章

1st pass: i is 1, increment to 2, check is 2 < 5? Yes, so output.

2nd pass: i is 2, increment to 3, check is 3 < 5? Yes, so output.

3rd pass: i is 3, increment to 4, check is 4 < 5? Yes, so output.

4th pass: i is 4, increment to 5, check is 5 < 5? No, so exit loop.

我的问题是如果i1 不再是第一个输出,是否已经增加?我现在真的很困惑。

标签: javascriptloops

解决方案


链接的解释显然是错误的,你的循环:

for (var i = 1; i < 5; i++) {
  console.log(i);  // 1 2 3 4
}

相当于:

var i=1;
while (i<5) {
    console.log(i);
    i++;
}

所以:

  1. 我 = 1
  2. 测试 1<5, log(1) 然后递增
  3. 测试 2<5, log(2) 然后递增
  4. 等等

推荐阅读