如果它是一种脚本语言,那么正如其名称所示,它必须是用一种较低级别的语言编写的,对吗?就像PHP是用C语言编写的一样,JavaScript是用什么语言编写的呢?
如果它是一种脚本语言,那么正如其名称所示,它必须是用一种较低级别的语言编写的,对吗?就像PHP是用C语言编写的一样,JavaScript是用什么语言编写的呢?
Javascript只是一个标准,更正式的称呼是ECMAScript。它可以在任何语言中实现,就像任何标准一样。
Chrome的Javascript引擎V8是用C++编写的。
从项目页面上来看:
V8是用C ++编写的,并且用于Google Chrome,这是Google开源的浏览器。
V8按照ECMA-262第5版规范实现ECMAScript,可以运行在使用IA-32、x64或ARM处理器的Windows(XP或更高版本)、Mac OS X (10.5或更高版本)和Linux系统上。
Firefox的Javascript引擎SpiderMonkey(现在是TraceMonkey)也是用C++编写的。正如下面的maerics所说,Rhino是用Java编写的。
到目前为止,所有的答案都是正确的,但是由于还没有提到,JavaScript可以用JavaScript编写。
大多数Javascript解释器是用C/C++编写的(如V8、Nitro等),但任何语言都可以编写符合规范的解释器(如Rhino→Java,Interpreter→Javascript等)。
大多数JavaScript的实现都表现出由指针和byref参数传递引起的行为,这通常指向C或C++的使用。
例如,在循环中拆分多维数组时,使用中间数组会表现得非常“奇怪”,如果您不熟悉指针和byref参数传递(每次都需要执行var hlp = new Array(),否则它将覆盖您已经存储在其他地方的先前值)
我对例如Java中的JavaScript实现非常好奇,因为我想象这种行为在那种情况下会有所不同?
C++
是现代和高端技术的基础语言。大多数现代高级语言都是低级语言C++
的子集。今天你看到的所有现代语言都以某种方式是C++
的子集。甚至Java
也是C++
的子集。
print("hello world")
。将其粘贴到一个新文件中,并使用C++编译器进行编译。它能编译吗?如果不能,那么Python就不是C++的子集。 - ARI FISHER