node.js是否可以编译JavaScript?

Mar*_*ves 5 javascript v8 node.js

Node.js使用V8,并将JavaScript编译为优化策略。

那么,通过node.js / V8在服务器端运行的JavaScript是经过编译还是解释?

小智 11

解释器:语言运行时/虚拟机的(核心)模块部分,它针对以模块所在的虚拟机的语言表达的一组表达式采取特定“操作”。

编译器:语言运行时的(核心)模块部分,它将以模块所在的编译器的语言表达的一组表达式“转换”为一组对运行表达式的架构本机的指令。

标准 Node.js 是针对 V8 构建的,它将每个 Javascript 代码片段编译为原生指令。您可以在命令行中使用 --print_code 标志来查看哪些脚本正在被编译,以及编译成什么。

希望这可以帮助。


Reu*_*cha 6

V8 引擎将 javascript 编译为一系列机器代码指令,一次一个函数(通常,函数直到第一次调用才会编译)。

V8 解析代码并提取 AST(抽象语法树),执行范围分析以了解符号所指的上下文,并将其转换为机器代码指令。

正如您提到的,V8 高度关注性能:除了编译每个函数的完整编译器之外,V8 还包含额外的编译器,负责优化标识为经常使用的块(称为Crankshaft

所以不,没有对 javascript 代码的解释,而是对机器代码的翻译和执行。