node.js 编译 JavaScript 吗?

Does node.js compile JavaScript?

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

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

V8 引擎将 javascript 编译为一系列机器代码指令,一次一个函数 (usually, functions are not compiled until the first call)。

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

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

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

解释器:语言运行时间/虚拟机的一个(核心)模块部分,它采用特定的'actions'针对一组表达式,该表达式以模块所在的虚拟机的语言表达。

编译器:运行语言的一个(核心)模块部分,其中 'converts' 一组用语言表达的表达式,该模块的编译器是该模块的本机指令集表达式 运行 反对的体系结构。

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

希望对您有所帮助。