这篇文章是这篇文章的简化版本:
我对为什么在使用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)如果为真,则执行代码,
4)一旦执行完成,i就会增加
5)如果增加,将检查i是否真实
6)重复步骤3-5,直到i无效。
7)迭代完成。
谢谢大家。Chrome调试器比我想象的要强大得多!
发布于 2017-10-12 18:36:53
(对不起,没有足够的代表在评论中提到这一点)
我建议使用浏览器调试功能。我不知道你使用的是哪个浏览器,只是谷歌“用X浏览器调试JS”,还有很多教程。
首先,创建一个简单的for循环htm文件。然后打开浏览器并初始化调试器。然后在浏览器中打开文件。打开“源代码”部分,您的代码将是visibile。单击for循环的行并设置一个断点,并在变量上创建监视表(如我)。
然后重新加载htm文件,调试器将在断点上停止。然后“逐步进入”for循环一步一步。您将能够观察系统在代码中的移动情况,查看每个步骤,您可以观察变量的变化,希望这将使您了解它是如何工作的。
这是一个很好的方法来理解任何复杂的代码,并轻松地调试错误。
https://stackoverflow.com/questions/46716006
复制相似问题