javascript - V8之后的JS是解释还是编译?

标签 javascript v8

我读了一些关于解释型语言与编译型语言的文章 我得出的结论是,主要区别是编译直接进入 native (没有任何中间字节码),这是解释无法做到的 然而我继续阅读,我发现一篇文章说 “它通过实现 JIT(即时)编译器,在执行时将 JavaScript 代码编译为机器代码,就像许多现代 JavaScript 引擎(例如 SpiderMonkey 或 Rhino (Mozilla) 所做的那样)。与 V8 的主要区别在于它不' t 产生字节码或任何中间代码。” 现在有了V8,这可以使JS编译语言吗?既然它直接生成机器代码,这是否会使 JS 依赖于平台? JIT 是如何工作的?

最佳答案

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

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

与编译语言的区别在于解释语言在运行时按 block 进行编译。这种类型的编译称为解释,因为它只不过将代码转换为字节码而不检查错误。编译型语言在程序执行之前完成编译,并且具有编译器检查错误的额外好处。

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

编辑:我找到一篇文章准确地解释了您的问题:http://voidcanvas.com/is-javascript-really-interpreted-or-compiled-language/

关于javascript - V8之后的JS是解释还是编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57093003/

相关文章:

node.js - nodejs的任何反模式?

c++ - Node Addons 和 v8 GlobalTemplate

javascript初始化对象(和dom)

javascript - AngularJS 如何在 ng-repeat 中再次打乱数据?

javascript - Protractor 错误 --- TypeError : Cannot read property 'click' of undefined

javascript - Node 内存使用情况和内存不足

c++ - 命名空间 v8 和命名空间 v8::internal 之间有什么区别?

javascript - WordPress 使用 json_encode 将帖子从 php 手动发送到 js,并将帖子 ID 发送到 div

javascript - 使用基于 HR 标签的 Javascript/JQuery 在 div 中拆分 HTML

javascript - 当部分 View 加载到 Jquery 选项卡时,我尝试打开 Jquery 对话框时出错