什么是 JavaScript 引擎
简单来讲,就是能够将 Javascript 代码处理并执行的运行环境。
一个 JavaScript 引擎一般需要包括以下几个部分:
- 编译器。主要工作是将源代码编译成抽象语法树,在某些引擎可能还包含了将抽象语法树转换成中间表示(字节码)。
- 解释器。在某些引擎中,解释器主要是接收字节码,解释执行这个字节码,同时也依赖垃圾回收机制等。
- JIT 工具。一个能够 JIT 的工具,将字节码或者抽象语法树转换成本地代码。
- 垃圾回收器和分析工具。它们负责垃圾回收和收集引擎中的信息,帮助改善引擎的性能和功效。
JavaScript 引擎和渲染引擎
之前在说 DOM 树的构建的时候,了解过在 HTML 解释器的工作过程中,可能会有 JavaScript 代码需要执行,而渲染引擎主要负责渲染页面。js 引擎提供调用接口给渲染引擎,以便让渲染引擎使用 js 引擎来处理 js 代码并获取结果。渲染引擎同时需要提供桥接接口让 js 可以访问 DOM。它们之间属于互相调用的关系。