如果它是一种脚本语言,顾名思义,它必须以较低级别的语言编写,对吗?就像PHP是用C编写的一样,JavaScript是用什么语言编写的?
如果它是一种脚本语言,顾名思义,它必须以较低级别的语言编写,对吗?就像PHP是用C编写的一样,JavaScript是用什么语言编写的?
Answers:
JavaScript只是一个标准,更正式地称为ECMAScript。就像任何标准一样,它可以用任何语言实现。
Chrome的Javascript引擎V8用C ++编写。
从项目页面:
V8用C ++编写,并在Google Chrome(谷歌的开源浏览器)中使用。
V8实现了ECMA-262,第5版中指定的ECMAScript,并在Windows(XP或更高版本),Mac OS X(10.5或更高版本)和使用IA-32,x64或ARM处理器的Linux系统上运行。
Firefox的Javascript引擎SpiderMonkey(以及现在的TraceMonkey)也是用C ++编写的。正如下面的专家所说,Rhino是用Java编写的。
到目前为止,所有答案都是正确的,但是由于尚未提及,因此可以使用JavaScript编写JavaScript。
大多数Java解释器都是用C / C ++(V8,Nitro等)编写的,但是兼容的解释器可以用任何语言(Rhino→Java,Interpreter →Javascript等)编写。
Javascript是ECMAScript标准的实现,但是没有像PHP那样的单一规范解释器。
出于性能方面的考虑,大多数主要的实现(独立的或作为Web浏览器的一部分)通常主要是用C或C ++编写的,但不一定总是这样。由Mozilla维护的Rhino引擎是用Java编写的。
Javascript的大多数实现都显示出明显是由于使用了指针和传递了byref参数所导致的行为,这些行为通常指向C或C ++的使用。
例如,当您在中间数组的帮助下将多维数组分解成一个循环时,这显然很明显。如果您不熟悉指针和参数的byref传递,则它们的行为通常非常“奇怪”(您每次都需要执行var hlp = new Array(),否则它将覆盖您已经存储在其他位置的先前值)
我对如何在Java中实现javascript感到非常好奇,因为我想这种情况下的这种行为会大不相同?
C++是任何现代和幻想的基本语言。大多数现代高级语言是低级语言的子集C++。您今天看到的所有现代语言都是某种形式的子集C++。甚至Java是的子集C++。
print("hello world")。将其粘贴到新文件中,然后使用C ++编译器进行编译。它可以编译吗?如果不是,那么Python并不是c ++的子集