Javascript 引擎什么时候工作?

when does Javascript Engine work?

我正在研究浏览器,我有一个问题。

我发现HTML的过程是,

  1. 浏览器中的网络引擎从 Web 服务器获取 HTML 文件。
  2. HTML 解析器开始解析 HTML 文件并生成 DOM.
  3. Web 布局引擎开始使用 DOM
  4. 呈现

当Html解析器遇到时,它们会立即调用Javascript引擎来解释代码?要么 解析器收集它们,然后在 DOM?

之后发送部分

如果他们立即调用 Javascript 引擎,如果有关于在完成 DOM.

之前编辑 DOM 对象的代码怎么办?

如果我写错了,请告诉我一个正确的

您关于它立即开始解释代码的假设以及您对可能出现的错误的猜测都是正确的。

对于下面的例子

<div id="test"></div>
<script>
  console.log(document.getElementById('test'));
</script>

您会看到 div 元素记录在控制台中。但是在下方,由于 javascript 在 div 之前,您会看到记录了 null

<script>
  console.log(document.getElementById('test'));
</script>
<div id="test"></div>

这就是为什么在现代 Web 开发中人们将脚本标签放在正文底部的原因。

<html>
  <head></head>
  <body>
    <!-- HTML CONTENT -->
    <div id="test"></div>
    <!-- script CONTENT -->
    <script>
      console.log(document.getElementById('test'));
    </script>
  </body>
</html>