一篇梳理常見的JavaScript引擎

前言

今天在看JavaScript編譯原理相關(guān)知識(shí),接觸到一些常見的JavaScript引擎,其中提到最多的像Google的V8、Apple的JavaScriptCore 等。出于好奇想去了解JavaScript都有哪些引擎,網(wǎng)上查閱了一些文章,發(fā)現(xiàn)文章都比較陳舊,并且還有一個(gè)大問題,就是各個(gè)JavaScript引擎出現(xiàn)的時(shí)間線,也是我最想要的。一直沒檢索到,于是自己寫了這篇文章,用于梳理和匯總常見的JavaScript引擎

關(guān)于JavaScript引擎

在梳理之前,先來聊聊什么是JavaScript引擎,它有什么作用
引用百科的一句話

JavaScript引擎是一個(gè)專門處理JavaScript腳本的虛擬機(jī)

很多人可能還是不理解
其實(shí)說白了,JavaScript引擎本質(zhì)是一個(gè)程序。只不過這個(gè)程序可以將 JS 代碼編譯為不同 CPU對(duì)應(yīng)的匯編代碼,此外,還負(fù)責(zé)執(zhí)行代碼、分配內(nèi)存以及垃圾回收等

梳理常見的JavaScript引擎
  • Mozilla的SpiderMonkey引擎,是第一款JavaScript引擎,早期用于 Netscape Navigator,現(xiàn)時(shí)用于 Mozilla Firefox。是用C語言實(shí)現(xiàn)的,還有一個(gè)Java版本叫Rhino;Rhino引擎由Mozilla基金會(huì)管理,開放源代碼,完全以Java編寫,用于 HTMLUnit;而后TraceMonkey引擎是基于實(shí)時(shí)編譯的引擎,用于Mozilla Firefox 3.5~3.6版本;JaegerMonkey:結(jié)合追蹤和組合碼技術(shù)大幅提高性能,用于Mozilla Firefox 4.0以上版本
  • Apple的JavaScriptCore ,簡稱JSC,開源,用于webkit內(nèi)核瀏覽器,如 Safari ,2008 年實(shí)現(xiàn)了編譯器和字節(jié)碼解釋器,升級(jí)為了 SquirrelFish。蘋果內(nèi)部代號(hào)為Nitro的 JavaScript 引擎也是基于 JSC引擎的。至于具體時(shí)間,JSC是WebKit默認(rèn)內(nèi)嵌的JS引擎,而WebKit誕生于1998年,Nitro是為Safari 4編寫,Safari 4是2009年6月發(fā)布。
  • Opera的LinearA:用于Opera4.0~6.1,Opera4于2000年6月發(fā)布
    LinearB:用于Opera7.0~9.2,Opera7于2003年6月發(fā)布
    Futhark:用于Opera9.5~10.2,Opera9.5于2008年6月發(fā)布
    Carakan:用于Opera10.5.及以上 2009年12月
  • Tamarin引擎,由Adobe Labs編寫,F(xiàn)lash Player 9所使用的引擎,大概時(shí)間2006年6月
  • 2008年9月,Google的V8引擎第一個(gè)版本隨著Chrome的第一個(gè)版本發(fā)布。V8引擎用 C++編寫,由 Google 丹麥開發(fā),開源。除了Chrome,還被運(yùn)用于Node.js以及運(yùn)用于Android操作系統(tǒng)等
  • Microsoft 的Chakra,譯名查克拉,用于IE9、10、11和Microsoft Edge,IE9發(fā)布時(shí)間2011年3月
  • JerryScript引擎 , 三星推出的適用于嵌入式設(shè)備的小型 JavaScript 引擎,2015年開源
  • Nashorn引擎,從 JDK 1.8 開始,Nashorn取代Rhino(JDK 1.6, JDK1.7) 成為 Java 的嵌入式 JavaScript 引擎,JDK1.8發(fā)布于2014年
  • QuickJS引擎, 2019 年 7 月發(fā)布
  • Hermes引擎,F(xiàn)acebook在Chain React 2019 大會(huì)上發(fā)布的一個(gè)嶄新JavaScript引擎,用于移動(dòng)端React Native應(yīng)用的集成,開源

以上就是自己簡單梳理的JavaScript引擎
注:
由于有些引擎找不到何時(shí)發(fā)布的具體時(shí)間,于是我把該引擎最早被應(yīng)用的時(shí)間表示其發(fā)布時(shí)間

參考:

  1. https://www.cnblogs.com/meituantech/p/9528285.html
  2. https://blog.csdn.net/liwenfei123/article/details/80677670
  3. https://zhuanlan.zhihu.com/p/65857442
  4. https://www.bilibili.com/video/BV1xT4y1L7ui
  5. https://baike.baidu.com/item/javascript%E5%BC%95%E6%93%8E/5356108?fr=aladdin
  6. https://www.douban.com/note/782727493/
  7. https://blog.csdn.net/innost/article/details/98491709
  8. https://blog.csdn.net/carson_ho/article/details/96267553
  9. https://www.cnblogs.com/s1nker/p/4414273.html
  10. https://zhidao.baidu.com/question/200406986.html
  11. https://www.cnblogs.com/feng9exe/p/11738372.html
  12. https://www.kancloud.cn/digest/liao-js/149467
  13. https://m.html.cn/qa/javascript/11312.html
  14. https://zhidao.baidu.com/question/1579209396278282860.html
  15. https://zhuanlan.zhihu.com/p/161722203
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容