繁体   English   中英

JavaScript“ for”循环中的执行顺序是什么?

[英]What is the order of execution in a JavaScript 'for' loop?

这篇文章是这篇文章的简化版本:

Java for循环的确切执行顺序是什么?

我对为什么在使用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”的状态保持在内存中感到困惑... 除非 “ for”循环中的三个条件中的每一个都是它们自己的独立命令, 否则可以在继续执行该块内的命令之前执行并完成这些命令。

我什至不确定我是否正确地问了这个问题,我对编程还是比较陌生,目前我只知道普通的JS ...下个月是进入节点;)

弄清楚: 单击以获取我的断点位置的图像

我了解到顺序是这样的:1) var i初始化为0

2) var i检查真实性

3)如果为true,则执行代码,

4)一旦执行完成, i就递增

5)递增1,检查i是否为真

6)重复步骤3-5,直到i犯错为止

7)迭代完成。

谢谢大家。 Chrome调试器比我想象的要强大得多!

(很抱歉,代表人数不足,无法对此发表评论)

我建议使用浏览器调试功能。 我不确定您使用的是哪种浏览器,但是只是谷歌“用X浏览器调试JS”,那里有很多教程。

首先,创建一个简单的for循环htm文件。 然后打开浏览器并初始化调试器。 然后在浏览器中打开文件。 打开“源”部分,您的代码将可见。 单击带有for循环的行并设置一个断点,然后在变量上创建监视(如i)。

然后重新加载htm文件,调试器将在断点处停止。 然后逐步“进入” for循环。 您将能够观察系统在每一步的代码中如何运行,可以观察变量的变化,希望这将使您对系统的工作方式有所了解。

这是了解您可能拥有的任何复杂代码并轻松调试错误的好方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM