JavaScript是解释型的还是JIT编译型的?

11

JavaScript是否是通过JIT编译器或解释器从源代码转换成机器码?还是取决于您正在运行的浏览器和JavaScript引擎?


2
JavaScript是一种高级的、解释型编程语言,通常用于在Web浏览器中创建交互式前端应用程序。它被广泛用于客户端脚本、服务器端编程和游戏开发等领域。JavaScript是一种基于原型、多范式的语言,支持面向对象、命令式和函数式编程风格。 - str
1
是的,有时候。是的。是的。 - Bergi
你可以查看答案:https://softwareengineering.stackexchange.com/questions/138521/is-javascript-interpreted-by-design - NITISH KUMAR
2个回答

8
JavaScript是一种解释性语言,直接由浏览器执行。但是,现代浏览器支持JIT编译,将其转换为字节码以实现高性能。

3

JavaScript是一种脚本语言,浏览器执行的是文本格式的脚本。因此,根据定义,JavaScript是解释性语言。

编译型语言是从二进制文件执行的语言。

JIT(即时编译)只是JavaScript引擎可以进行的优化方式,但你永远不会真正生成二进制JS文件,所以该语言是解释性语言。


4
虽然“解释型语言”的含义因人而异,但我倾向于采用维基百科的定义:“解释型语言是一种编程语言,其大部分实现可以直接执行指令,而不需要先将程序编译成机器语言指令”。由于最流行的JavaScript引擎编译成本地机器代码,我不同意你的回答。在我看来,“解释型语言”是没有意义的,因为你可以为任何语言编写解释器。 - le_m
有一些重点,我通常会使其更实用,如果是脚本语言,那么它就是解释性的。但对于JavaScript来说并不简单,因为有很多引擎,即使是使用JIT的引擎也不总是使用它。 - sielakos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接