JavaScript可以编译为二进制吗?

时间:2018-09-12 15:22:15

标签: javascript v8 interpreter rhino

JavaScript是否在网络浏览器上运行?

像Java在JVM之上运行吗?

还是它实际上编译为二进制代码并在计算机上运行?

3 个答案:

答案 0 :(得分:1)

V8(在Google Chrome中)包含一个JS解释器和一个JIT(即时)编译器。 JS代码将转换为V8特定的字节码。字节码最初由解释器解释,称为“点火”。当某个功能变得“热”(经常运行)时,TurboFan JIT编译器会根据字节码生成优化的机器代码。

其他现代JS引擎也使用类似的策略。因此,可以将JS解释或编译为机器代码(使用JIT编译器),类似于JVM的工作原理。

答案 1 :(得分:0)

必须-如果没有适合处理器的机器代码,则任何东西都无法在计算机上运行。

V8将JavaScript转换为其自己的字节码,然后进行了优化并转换为机器码。

即使JVM也会执行类似的操作。 JVM将Java字节码转换为机器码。

答案 2 :(得分:0)

JavaScript并不是真正地编译的-它是在浏览器中解释的,因此,是的,它实际上是在客户端“运行在浏览器之上”。

编辑:我应该先说它的基本级别。正如对此的评论中提到的那样,现在有更复杂的引擎。