Node.js使用V8,它将JavaScript编译为优化策略。
那么,编译或解释通过node.js / V8在服务器端运行的JavaScript?
答案 0 :(得分:3)
解释器:语言运行时/虚拟机的一个(核心)模块部分,它采用特定的“动作”来表示以模块所在的语言表示的一组表达式。
编译器:语言运行库的一个(核心)模块部分,它将一组表达式的表达式“转换”为模块所在的语言,并将其转换为运行表达式的体系结构本机的一组指令。 / p>
标准Node.js是针对V8构建的,V8将每个Javascript代码段编译为本机指令。您可以在命令行中使用--print_code标志来查看正在编译的脚本,并编译成什么。
希望这有帮助。
答案 1 :(得分:2)
V8引擎将javascript编译为一系列机器代码指令,一次一个函数(usually, functions are not compiled until the first call)。
V8解析代码并提取AST(抽象语法树), 执行范围分析,以了解符号引用的上下文,并将其转换为机器代码指令。
正如您所提到的,V8高度关注性能:除了编译每个函数的完整编译器外,V8还包含额外的编译器,负责优化标识为常用的块(称为Crankshaft)< / p>
所以不,没有解释javascript代码,而是翻译和执行机器代码。