Is Javascript compiled or an interpreted language?
javascript可以称为纯解释语言吗?或者它也有一些编译的味道?有人能不能找出这两件事背后的原因,不管是真的。
- 投票时请考虑添加评论,以便改进问题。谢谢。
- 我想知道你认为"编译"语言是什么。例如,即使是exe文件也由操作系统解释,否则Linux二进制文件就可以与Windows二进制文件互换。
- @盲目:你提到编译和解释之间的区别不应该存在吗?
- 当然,这有什么区别?
- 5次投票被否决,甚至没有一次评论提到为什么会有否决。有点失望。
- @蒙昧:但这不是一种很常见的语言分类方法吗?
- 它可能是对语言进行分类的一种常见方法,但这并不能使它变得更加有用。
- @netemp(注意,我没有投反对票,但是已经投了票,要迁移到程序员那里)这是问这种类型问题的错误地方-阅读关于在这里问什么问题的常见问题解答-这应该在stackexchange的编程部分。
- @曼塞克:谢谢分享。以后会小心的。
去读这个问题的答案
https://softwarengineering.stackexchange.com/questions/138521/is-javascript-explocated-by-design
我接受的答案很好,应该有助于回答你的问题。
就我个人而言,我对调用一种解释或编译的语言的想法有些谨慎。这是一个实现决策,而不是语言规范的一部分。如果您想讨论编译或解释的JavaScript,请在语言规范的实际实现的上下文中询问它。
JavaScript在运行时由客户端浏览器解释。不过,有一种工具称为Rijo JavaScript编译器,它可以将JavaScript编译成Java类文件。
- V8之类的怎么样?
- @德尔南你什么意思?
- V8从来没有包含任何类似于解释器的东西,到目前为止,大多数主要的JS引擎都具有JIT编译器。因此,说"javascript被解释"显然是错误的(或者您对解释器/编译器的定义是错误的)。
- @德尔南:谢谢你对V8的了解。因此,JS不是一种纯粹的解释语言。
- Rhino JavaScript编译器。你知道,如果你想用另一种解释语言来解释你的解释语言。
- Spidermonkey和Trident都在浏览器中使用了Javascript的JIT编译器。
- "javascript在运行时由客户端浏览器解释"。不,除非你是在谈论你写的一些使用翻译程序的个人浏览器。
- 正如其他人所说,这在一段时间内已经不再是真的了。是的,在早期,你可以说javascript是被解释的,但从那时起它已经走了很长的路。
- JavaScript由V8引擎使用JIT编译器编译。V8编译器和C/C++编译器之间的区别在于V8不能创建中间字节码。