fbpx
维基百科

JavaScript引擎

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

历史 编辑

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

目前为止,最通用的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实用基准测试英语Browser speed test通过一系列关于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]

著名的引擎 编辑

開發中 编辑

停止開發 编辑

  • Linear A,用于Opera 4.0至6.1版本。
  • Linear B,用于Opera 7.0至9.2版本。
  • Futhark,用于Opera 9.5至10.2版本。
  • Carakan,用于Opera 10.5至12.1版本。
  • Nashorn英语Nashorn,Oracle於JDK 1.8[12][13][14]發布,內嵌於 Java 的 javascript 引擎。於Java 11改為棄用[15]並於Java 15[16]正式移除。
  • Narcissus英语Narcissus (JavaScript engine),开放源代码,由布蘭登·艾克编写(他也编写了SpiderMonkey)。
  • Tamarin,由Adobe Labs编写。

实现 编辑

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扩展[17] ECMA-262,版本5.1
KHTML排版引擎,KDE项目的Konqueror JavaScript 1.5 ECMA-262,版本3
Adobe Acrobat JavaScript 1.5 ECMA-262,版本3
OpenLaszlo英语OpenLaszlo JavaScript 1.4 ECMA-262,版本3
Max/MSP英语Max (software) JavaScript 1.5 ECMA-262,版本3
ANT Galio 3英语Fresco (web browser) JavaScript 1.5附带RMAI扩展 ECMA-262,版本3

参考来源 编辑

  1. ^ Stephen Shankland. Speed test: Google Chrome beats Firefox, IE, Safari. cnet.com Business Tech. CNET. 2008-09-02 [2010-06-28]. (原始内容存档于2012-05-01) (英语). 
  2. ^ Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome. PC Games Hardware. Computec Media AG. [2010-06-28]. (原始内容存档于2012-05-01) (英语). 
  3. ^ Lifehacker Speed Tests: Safari 4, Chrome 2. Lifehacker. [2010-06-28]. (原始内容存档于2012-05-01) (英语). 
  4. ^ Stephen Shankland. Third Chrome beta another notch faster. cnet.com. CNET. 2008-10-31 [2010-06-28]. (原始内容于2012-09-25) (英语). 
  5. ^ Stephen Shankland. Step aside, Chrome, for Squirrelfish Extreme. cnet.com. CNET. 2008-09-19 [2010-06-29]. (原始内容于2012-09-25) (英语). 
  6. ^ SquirrelFish Extreme: Fastest JavaScript Engine Yet. satine.org. [2010-06-29]. (原始内容存档于2012-05-01) (英语). 
  7. ^ Stephen Shankland. Firefox counters Google's browser speed test. cnet.com Business Tech. CNET. 2008-09-03 [2010-06-29]. (原始内容存档于2012-05-01) (英语). 
  8. ^ Garen, Geoffrey. Announcing SquirrelFish. 2008-06-02 [2008-06-11]. (原始内容存档于2012-05-01) (英语). 
  9. ^ Lipskas, Vygantas. Apple Safari 4. 2008-06-11 [2008-06-11]. (原始内容存档于2012-05-01) (英语). 
  10. ^ Ryan Paul. Firefox to get massive JavaScript performance boost. arstechnica.com. Ars Technica © 2010 Condé Nast Digital. 2008-08-22 [2010-06-28]. (原始内容于2008-12-17) (英语). 
  11. ^ Marius Oiaga. Internet Explorer 9 Beta Next – New IE9 Builds Every 8 Weeks. softpedia.com. SoftNews NET SRL. 2010-03-20 [2010-06-28]. (原始内容存档于2012-05-01) (英语). 
  12. ^ Laskey, James. (PDF). Oracle Corporation. July 2011 [2011-07-24]. (原始内容 (PDF)存档于2016-06-03). 
  13. ^ Proposed new schedule for Java 8. 2013-04-18 [2013-04-19]. (原始内容于2013-04-22). 
  14. ^ JDK 8. OpenJDK. 2013-04-18 [2013-04-19]. (原始内容于2013-09-07). 
  15. ^ JEP 335: Deprecate the Nashorn JavaScript Engine. 2017-07-17 [2018-09-25]. (原始内容于2022-05-23). 
  16. ^ JEP 372: Remove the Nashorn JavaScript Engine. 2020-01-10 [2020-07-22]. (原始内容于2022-06-09). 
  17. ^ Web specifications support in Opera Presto. Opera.com. Opera Software ASA. [2010-06-28]. (原始内容存档于2012-06-04) (英语). 

外部链接 编辑

  • Kraken JavaScript Benchmark (页面存档备份,存于互联网档案馆) - 瀏覽器效能測試
  • Peacekeeper (页面存档备份,存于互联网档案馆) - 瀏覽器效能測試
  • Speed-Battle (页面存档备份,存于互联网档案馆) - 瀏覽器效能測試
  • SunSpide (页面存档备份,存于互联网档案馆) - 瀏覽器效能測試

javascript引擎, 提示, 此条目的主题不是排版引擎, 是一个专门处理javascript脚本的虚拟机, 一般会附带在网页浏览器之中, 目录, 历史, 性能演進, 著名的引擎, 開發中, 停止開發, 实现, 参考来源, 外部链接历史, 编辑在2008年到2009年的第二次浏览器大战之前, 仅简单地被当作能阅读执行javascript源代码的直譯器, spidermonkey, 第一個, 由布蘭登, 艾克在网景公司开发, 用于netscape, navigator网页浏览器中, 由c, 实现, 自javasc. 提示 此条目的主题不是排版引擎 JavaScript引擎是一个专门处理JavaScript脚本的虚拟机 一般会附带在网页浏览器之中 目录 1 历史 2 性能演進 3 著名的引擎 3 1 開發中 3 2 停止開發 4 实现 5 参考来源 6 外部链接历史 编辑在2008年到2009年的第二次浏览器大战之前 JavaScript引擎仅简单地被当作能阅读执行JavaScript源代码的直譯器 SpiderMonkey 第一個JavaScript引擎 由布蘭登 艾克在网景公司开发 用于Netscape Navigator网页浏览器中 由C 实现 自JavaScript 1 5升级以符合ECMA 262版本3 Rhino 由网景公司的諾里斯 博伊德 Norris Boyd 开发 由Java实现 像SpiderMonkey一样 Rhino符合ECMA 262版本3 Nitro Apple Safari 4開始支援 V8 Google Chrome製作 TraceMonkey Mozilla Firefox 3 5開始支援目前为止 最通用的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实用基准测试 英语 Browser speed test 通过一系列关于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 著名的引擎 编辑開發中 编辑 Rhino 由Mozilla基金会管理 开放源代码 完全以Java编写 SpiderMonkey 第一款JavaScript引擎 早期用於Netscape Navigator 現時用於Mozilla Firefox V8 开放源代码 由Google丹麦开发 是Google Chrome的一部分 JavaScriptCore 开放源代码 用於Safari Chakra JScript引擎 用於Internet Explorer 11 Chakra JavaScript引擎 用於Microsoft Edge KJS KDE的ECMAScript JavaScript引擎 最初由哈里 波頓 英语 Harri Porten 开发 用于KDE项目的Konqueror网页浏览器中 停止開發 编辑 Linear A 用于Opera 4 0至6 1版本 Linear B 用于Opera 7 0至9 2版本 Futhark 用于Opera 9 5至10 2版本 Carakan 用于Opera 10 5至12 1版本 Nashorn 英语 Nashorn Oracle於JDK 1 8 12 13 14 發布 內嵌於 Java 的 javascript 引擎 於Java 11改為棄用 15 並於Java 15 16 正式移除 Narcissus 英语 Narcissus JavaScript engine 开放源代码 由布蘭登 艾克编写 他也编写了SpiderMonkey Tamarin 由Adobe Labs编写 实现 编辑参见 ECMAScript引擎列表 JavaScript是一种ECMAScript方言 在许多程序中得以实现 特别是在网页浏览器 这些方言通常扩展了语言 或者标准库和相关API 例如W3C定义的DOM 这意味着以一种方言实现的程序不兼容于另一种方言的实现 除非程序使用了方言中的公共子集所具有的特性和API 在实现和方言中存在着一些差别 一种语言的方言有一些与语言不同的地方 实现能够执行该语言或方言编写的程序 应用程序 实现 方言和最后版本 ECMAScript版本Google Chrome V8引擎 JavaScript ECMA 262 版本6Mozilla Firefox Gecko排版引擎 SpiderMonkey和Rhino JavaScript 1 8 5 ECMA 262 版本6Safari Nitro引擎 JavaScript ECMA 262 版本6Microsoft Edge Chakra引擎 JavaScript EMCA 262 版本6Opera Carakan引擎 改用V8之前 一些JavaScript 1 5特性及一些JScript扩展 17 ECMA 262 版本5 1KHTML排版引擎 KDE项目的Konqueror JavaScript 1 5 ECMA 262 版本3Adobe Acrobat JavaScript 1 5 ECMA 262 版本3OpenLaszlo 英语 OpenLaszlo JavaScript 1 4 ECMA 262 版本3Max MSP 英语 Max software JavaScript 1 5 ECMA 262 版本3ANT Galio 3 英语 Fresco web browser JavaScript 1 5附带RMAI扩展 ECMA 262 版本3参考来源 编辑 Stephen Shankland Speed test Google Chrome beats Firefox IE Safari cnet com Business Tech CNET 2008 09 02 2010 06 28 原始内容存档于2012 05 01 英语 Big browser comparison test Internet Explorer vs Firefox Opera Safari and Chrome PC Games Hardware Computec Media AG 2010 06 28 原始内容存档于2012 05 01 英语 Lifehacker Speed Tests Safari 4 Chrome 2 Lifehacker 2010 06 28 原始内容存档于2012 05 01 英语 Stephen Shankland Third Chrome beta another notch faster cnet com CNET 2008 10 31 2010 06 28 原始内容存档于2012 09 25 英语 Stephen Shankland Step aside Chrome for Squirrelfish Extreme cnet com CNET 2008 09 19 2010 06 29 原始内容存档于2012 09 25 英语 SquirrelFish Extreme Fastest JavaScript Engine Yet satine org 2010 06 29 原始内容存档于2012 05 01 英语 Stephen Shankland Firefox counters Google s browser speed test cnet com Business Tech CNET 2008 09 03 2010 06 29 原始内容存档于2012 05 01 英语 Garen Geoffrey Announcing SquirrelFish 2008 06 02 2008 06 11 原始内容存档于2012 05 01 英语 Lipskas Vygantas Apple Safari 4 2008 06 11 2008 06 11 原始内容存档于2012 05 01 英语 Ryan Paul Firefox to get massive JavaScript performance boost arstechnica com Ars Technica c 2010 Conde Nast Digital 2008 08 22 2010 06 28 原始内容存档于2008 12 17 英语 Marius Oiaga Internet Explorer 9 Beta Next New IE9 Builds Every 8 Weeks softpedia com SoftNews NET SRL 2010 03 20 2010 06 28 原始内容存档于2012 05 01 英语 Laskey James Adventures in JSR 292 or How To Be A Duck Without Really Trying PDF Oracle Corporation July 2011 2011 07 24 原始内容 PDF 存档于2016 06 03 Proposed new schedule for Java 8 2013 04 18 2013 04 19 原始内容存档于2013 04 22 JDK 8 OpenJDK 2013 04 18 2013 04 19 原始内容存档于2013 09 07 JEP 335 Deprecate the Nashorn JavaScript Engine 2017 07 17 2018 09 25 原始内容存档于2022 05 23 JEP 372 Remove the Nashorn JavaScript Engine 2020 01 10 2020 07 22 原始内容存档于2022 06 09 Web specifications support in Opera Presto Opera com Opera Software ASA 2010 06 28 原始内容存档于2012 06 04 英语 外部链接 编辑Kraken JavaScript Benchmark 页面存档备份 存于互联网档案馆 瀏覽器效能測試 Peacekeeper 页面存档备份 存于互联网档案馆 瀏覽器效能測試 Speed Battle 页面存档备份 存于互联网档案馆 瀏覽器效能測試 SunSpide 页面存档备份 存于互联网档案馆 瀏覽器效能測試 取自 https zh wikipedia org w index php title JavaScript引擎 amp oldid 78944436, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。