这篇文章是这篇文章的简化版本:
What is the exact order of execution of Javascript's for loop?
我非常感兴趣为什么在使用for循环时我一直感到困惑。我想学习如何在幕后执行for循环。
for (let i = 0; i < 10; i++) {
alert(i);
};
因此,根据我的理解,这是我理解执行此类操作的顺序:
1)引擎初始化i = 0
2)引擎检查i < 10
3)引擎从包含for语句
的括号中弹出4)引擎在循环中执行此迭代的代码
5)引擎弹回括号以增加i
,
6)从第2步开始重复。
我想我对第3步感到困惑。引擎是否实际弹出“for”循环以执行块内的代码?
根据我的理解,JavaScript是单线程的,只能同步运行,所以我有点困惑于如何在'for'语句的中间,引擎可以保持'for'的状态在执行块中的代码时执行内存.... 除非 我甚至不确定我是否正确地提出这个问题,我还是比较新的编程,我现在只知道vanilla JS ...下个月就是我进入节点的时候;) 想出来:
Click for an image of my breakpoint placement 我了解到订单是这样的:
1) 2)检查 3)如果为true,则执行代码, 4)执行完成后, 5)增加一个, 6)重复步骤3 - 5,直到 7)迭代完成。 谢谢大家。 Chrome调试器比我想象的要强大得多!var i
初始化为0
var i
是否真实i
递增i
检查真实性i
为虚假
答案 0 :(得分:2)
(抱歉没有足够的代表将其放在评论中)
我建议使用浏览器调试功能。我不确定你使用的是什么浏览器,但只是谷歌“使用X浏览器调试JS”,并且有很多教程。
首先,创建一个简单的for循环htm文件。然后打开浏览器并初始化调试器。然后在浏览器中打开该文件。打开“Sources”部分,您的代码将是可见的。单击带有for循环的行并设置断点,并在变量上创建监视(如i)。
然后重新加载htm文件,调试器将在断点处停止。然后逐步“逐步进入”for循环。您将能够观察系统如何在代码中查看每个步骤,您可以观察变量的变化,并希望这可以让您深入了解它是如何工作的。
这是了解您可能拥有的任何复杂代码以及轻松调试错误的好方法。