这篇文章是怎么样的这个帖子的简化版本:JavaScript for'循环中的执行顺序是什么?
What is the exact order of execution of Javascript's for loop?
我在为什么与循环工作时我总是感到困惑超级感兴趣。我想知道如何在引擎盖下执行for循环。
for (let i = 0; i < 10; i++) {
alert(i);
};
从我的理解
所以,这是据我得到的理解在其中执行这样的命令:)发动机初始化i = 0
2)
1发动机检查这i < 10
3)发动机弹出持有for语句
圆括号4)引擎执行)循环本次迭代
5)发动机弹回到括号递增i
内的代码,
6重复从步骤2.
我想我对第3步最困惑。引擎是否实际弹出'for'循环来执行块内的代码?
从我的理解来看,JavaScript是单线程的,只能同步运行,所以我对'for'语句中间的一些问题感到困惑,引擎可以保持'for'在执行块中的代码时在内存中执行... 除非'for'循环中的三个条件中的每一个都是它们自己的独立命令,可以在继续执行块中的命令之前执行和完成这些命令。
我甚至不确定如果我正确地问这个问题,我还是比较新的编程,我只知道香草JS在这一点上...下个月是当我进入节点;)
想通了: Click for an image of my breakpoint placement
我已经了解到,顺序是这样的: 1)var i
被初始化为0
2)var i
被检查truthy
3)如果执行真实的,代码,
4)一旦执行结束,i
递增
5)递增一,i
被检查truthy
6)重复步骤3 - 5直到i
是虚假的
7)迭代完成。
谢谢大家。 Chrome调试器比我想象的要强大得多!
除了括号中的_pops而是正在转到下一行_什么是您的问题? – Lixus
我不知道你是什么意思的“弹出”。括号只与代码的语法结构相关,与实际执行的内容无关。 “*'for'循环中的三个条件中的每一个都是它们自己的独立命令,它们可以被执行*”正好相反。 – Bergi
在这种情况下'i'的范围在大括号内。顺便说一句,如果你使用旧的'var'关键字,那么'i'在周围的函数或窗口的范围内,如果'for'循环周围没有函数 –