JavaScript引擎

JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器之中。

历史

在2008年到2009年的第二次浏览器大战之前,JavaScript引擎仅简单地被当作能阅读执行JavaScript源代码直译器

第一个JavaScript引擎由布兰登·艾克网景公司开发,用于Netscape Navigator网页浏览器中。引擎的名字叫做SpiderMonkey,由C++实现。它自JavaScript 1.5升级以符合ECMA-262版本3。Rhino引擎,由网景公司的诺里斯·博伊德(Norris Boyd)开发,由Java实现。像SpiderMonkey一样,Rhino符合ECMA-262版本3。JavaScript引擎的应用例子还包括:Apple Safari 4的Nitro,Google Chrome的V8和Mozilla Firefox 3.5的TraceMonkey

目前为止,最通用的JavaScript宿主环境是网页浏览器。网页浏览器一般使用公共的API创建“宿主对象”以便于在JavaScript中支持DOM

性能演进

一个典型的浏览器有一个图形引擎和一个独立的JavaScript引擎。这样JavaScript引擎能够被更方便的测试、重新生成或者在另一些项目中使用。例如:Carakan被用在Presto中,Nitro被用在WebKit中,SpiderMonkey被用在Gecko中,KJS被用在KHTML中,Rhino默认不包含任何布局引擎。但还有其他组合,例如:V8与WebKit被用于Google Chrome中。JavaScript引擎能为程序员提供部分操作浏览器的功能(网络、DOM、外部事件、HTML5视频、canvas和存储)。

Sunspider是一个通过一系列关于JavaScript语言的脚本测试JavaScript引擎的速度。Sunspider不测试无关于JavaScript的特性(不使用HTML、CSS和无网络情况下)。

近几年来,在浏览器开发者之间展开了一场开发更快的JavaScript引擎的竞赛。2008年,Google Chrome因它的JavaScript性能而倍受称赞,但是其它浏览器马上使用了更快的JavaScript引擎。之后,Google Chrome在性能上获得领先,其长处在于它高速的性能和JavaScript的处理速度,这些都由许多网站在主要的浏览器之间的速度测试中得到验证[1][2][3]。随着WebKit的Squirrelfish Extreme和Mozilla的TraceMonkey JavaScript虚拟机出现,Chrome的JavaScript执行速度就被超越了[4][5][6][7]。Google丹麦在Chrome 2中开发了更快速的V8引擎

2008年6月2日,WebKit开发团队发布了SquirrelFish[8]——一个能极大地提升Safari解释脚本速度的新的JavaScript引擎[9]。该引擎是Safari 4其中一个新特性,在2008年6月11日发布给程序员使用;最终此JavaScript引擎被称为Nitro。2009年6月30日,在Firefox 3.5发布的最新技术能“使某些情况下的速度提升20到40倍”[10]。

JavaScript引擎

开发中

停止开发

实现

JavaScript是一种ECMAScript方言,在许多程序中得以实现,特别是在网页浏览器。这些方言通常扩展了语言,或者标准库和相关API,例如W3C定义的DOM。这意味着以一种方言实现的程序不兼容于另一种方言的实现,除非程序使用了方言中的公共子集所具有的特性和API。

在实现和方言中存在着一些差别。一种语言的方言有一些与语言不同的地方。实现能够执行该语言或方言编写的程序。

应用程序(实现)

方言和最后版本

ECMAScript版本

Google ChromeV8引擎

JavaScript

ECMA-262,版本6

Mozilla FirefoxGecko排版引擎,SpiderMonkeyRhino

JavaScript 1.8.5

ECMA-262,版本6

SafariNitro引擎

JavaScript

ECMA-262,版本6

Microsoft EdgeChakra引擎

JavaScript

EMCA-262,版本6

Opera,Carakan引擎(改用V8之前)

一些JavaScript 1.5特性及一些JScript扩展[12]

ECMA-262,版本5.1

KHTML排版引擎,KDE项目的Konqueror

JavaScript 1.5

ECMA-262,版本3

Adobe Acrobat

JavaScript 1.5

ECMA-262,版本3

JavaScript 1.4

ECMA-262,版本3

JavaScript 1.5

ECMA-262,版本3

JavaScript 1.5附带RMAI扩展

ECMA-262,版本3

外部链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值