我读了一些关于解释型语言与编译型语言的文章 我得出的结论是,主要区别是编译直接进入 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/