热门问题
时间线
聊天
视角
JavaScript引擎
来自维基百科,自由的百科全书
Remove ads
JavaScript引擎是一個專門處理JavaScript腳本的虛擬機,一般會附帶在網頁瀏覽器之中。
此條目需要補充更多來源。 (2025年4月13日) |
歷史
在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。
Remove ads
性能演進
一個典型的瀏覽器有一個圖形引擎和一個獨立的JavaScript引擎。這樣JavaScript引擎能夠被更方便的測試、重新生成或者在另一些項目中使用。例如:Carakan被用在Presto中,Nitro被用在WebKit中,SpiderMonkey被用在Gecko中,KJS被用在KHTML中,Rhino默認不包含任何布局引擎。但還有其他組合,例如:V8與WebKit被用於Google Chrome中。JavaScript引擎能為程序員提供部分操作瀏覽器的功能(網絡、DOM、外部事件、HTML5視頻、canvas和存儲)。
Sunspider是一個JavaScript實用基準測試通過一系列關於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]。
Remove ads
著名的引擎
- 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引擎,最初由哈里·波頓開發,用於KDE項目的Konqueror網頁瀏覽器中。
實現
JavaScript是一種ECMAScript方言,在許多程序中得以實現,特別是在網頁瀏覽器。這些方言通常擴展了語言,或者標準庫和相關API,例如W3C定義的DOM。這意味着以一種方言實現的程序不兼容於另一種方言的實現,除非程序使用了方言中的公共子集所具有的特性和API。
在實現和方言中存在着一些差別。一種語言的方言有一些與語言不同的地方。實現能夠執行該語言或方言編寫的程序。
Remove ads
參考來源
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads