在V8之后,JS会被解释或编译吗?

时间:2019-07-18 11:01:26

标签: javascript v8

我阅读了一些有关解释性Vs编译语言的文章 我得出的结论是,编译的主要区别直接在于本机(没有任何中间字节码),这是解释器无法做到的 但是我继续阅读,发现和写着 “通过像许多现代JavaScript引擎(例如SpiderMonkey或Rhino(Mozilla)一样)那样实现JIT(即时)编译器,它在执行时就将JavaScript代码编译为机器代码。V8的主要区别在于它不会不能产生字节码或任何中间代码。” 现在使用V8,这会使JS编译语言吗?因为它直接生成机器代码,这使JS平台依赖吗? 以及JIT如何工作?

1 个答案:

答案 0 :(得分:1)

Javascript仍然是独立于平台和解释性语言的语言。

在某种程度上,每种语言都必须编译为字节码,因为这是机器可以执行的唯一代码。

与已编译语言的区别在于,已解释语言在运行时按块进行了编译。这种类型的编译称为解释,因为它所做的无非就是将代码转换为字节码而不检查错误。在执行程序之前,已编译的语言已被完全编译,并且具有编译器检查错误的额外好处。

字节码的平台依赖性完全由V8引擎处理,除了不同的浏览器版本外,您无需担心任何其他平台。

编辑:我发现了一篇文章,可以准确解释您的问题:http://voidcanvas.com/is-javascript-really-interpreted-or-compiled-language/