历史发展:
在2008年到2009年的第二次浏览器大战之前,JavaScript引擎(JavaScript engine)仅简单地被当作能阅读执行JavaScript源代码的解释器。
第一款JavaScript引擎由布兰登·艾克在网景公司开发,用于Netscape Navigator网页浏览器中。引擎的名字叫做SpiderMonkey,由C实现。它自JavaScript 1.5升级以符合ECMA-262 版本3。Rhino引擎,由网景公司的Norris Boyd开发,由Java实现。像SpiderMonkey一样,Rhino符合ECMA-262 版本3。JavaScript引擎的应用例子还包括: Apple Safari4的Nitro,Chrome浏览器的V8和 Mozilla Firefox 3.5的TraceMonkey。
最通用的JavaScript宿主环境是网页浏览器。网页浏览器一般使用公共的API创建“宿主对象”以便于在JavaScript中支持DOM。
网页服务器是另一种通过的应用程序引擎。一个JavaScript服务器能够处理HTTP请求并回应,这样JavaScript程序能动态生成页面。微软用于IIS中ASP技术允许服务器端代码以VB Script或JScript(微软的JavaScript实现)写成。Jaxer是以JavaScript编写成的网页服务器,这有利于在服务器端和客户端使用同样的代码。
主要的网页浏览器JavaScript引擎:
Mozilla
SpiderMonkey,第一款JavaScript引擎,由Brendan Eich在Netscape Communications时编写,用于Mozilla Firefox 1.0~3.0版本。
Rhino,由Mozilla基金会管理,开放源代码,完全以Java编写。
TraceMonkey,基于实时编译的引擎,其中部份代码取自Tamarin引擎,用于Mozilla Firefox 3.5~3.6版本。
JaegerMonkey,德文Jäger原意为猎人,结合追踪和组合码技术大幅提高性能,部分技术借凿了V8、JavaScriptCore、WebKit,用于Mozilla Firefox 4.0以上版本。
Google
V8,开放源代码,由Google丹麦开发,是Chrome浏览器的一部分。
微软
Chakra (JScript引擎),中文译名为查克拉,用于Internet Explorer 9的32位版本。
Opera
Linear A,用于Opera 4.0~6.1版本。
Linear B,用于Opera 7.0~9.2版本。
Futhark,用于Opera 9.5~10.2版本。
Carakan,由Opera软件公司编写,自Opera10.50版本开始使用。
其它
KJS,KDE的ECMAScript/JavaScript引擎,最初由Harri Porten开发,用于KDE项目的Konqueror网页浏览器中。
Narcissus,开放源代码,由Brendan Eich编写(他也参与编写了第一个SpiderMonkey)。
Tamarin,由Adobe Labs编写,Flash Player 9所使用的引擎。
Nitro(原名SquirrelFish),为Safari 4编写。