一篇梳理常见的JavaScript引擎

前言

今天在看JavaScript编译原理相关知识,接触到一些常见的JavaScript引擎,其中提到最多的像Google的V8、Apple的JavaScriptCore 等。出于好奇想去了解JavaScript都有哪些引擎,网上查阅了一些文章,发现文章都比较陈旧,并且还有一个大问题,就是各个JavaScript引擎出现的时间线,也是我最想要的。一直没检索到,于是自己写了这篇文章,用于梳理和汇总常见的JavaScript引擎

关于JavaScript引擎

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

JavaScript引擎是一个专门处理JavaScript脚本的虚拟机

很多人可能还是不理解
其实说白了,JavaScript引擎本质是一个程序。只不过这个程序可以将 JS 代码编译为不同 CPU对应的汇编代码,此外,还负责执行代码、分配内存以及垃圾回收等

梳理常见的JavaScript引擎
  • Mozilla的SpiderMonkey引擎,是第一款JavaScript引擎,早期用于 Netscape Navigator,现时用于 Mozilla Firefox。是用C语言实现的,还有一个Java版本叫Rhino;Rhino引擎由Mozilla基金会管理,开放源代码,完全以Java编写,用于 HTMLUnit;而后TraceMonkey引擎是基于实时编译的引擎,用于Mozilla Firefox 3.5~3.6版本;JaegerMonkey:结合追踪和组合码技术大幅提高性能,用于Mozilla Firefox 4.0以上版本
  • Apple的JavaScriptCore ,简称JSC,开源,用于webkit内核浏览器,如 Safari ,2008 年实现了编译器和字节码解释器,升级为了 SquirrelFish。苹果内部代号为Nitro的 JavaScript 引擎也是基于 JSC引擎的。至于具体时间,JSC是WebKit默认内嵌的JS引擎,而WebKit诞生于1998年,Nitro是为Safari 4编写,Safari 4是2009年6月发布。
  • Opera的LinearA:用于Opera4.0~6.1,Opera4于2000年6月发布
    LinearB:用于Opera7.0~9.2,Opera7于2003年6月发布
    Futhark:用于Opera9.5~10.2,Opera9.5于2008年6月发布
    Carakan:用于Opera10.5.及以上 2009年12月
  • Tamarin引擎,由Adobe Labs编写,Flash Player 9所使用的引擎,大概时间2006年6月
  • 2008年9月,Google的V8引擎第一个版本随着Chrome的第一个版本发布。V8引擎用 C++编写,由 Google 丹麦开发,开源。除了Chrome,还被运用于Node.js以及运用于Android操作系统等
  • Microsoft 的Chakra,译名查克拉,用于IE9、10、11和Microsoft Edge,IE9发布时间2011年3月
  • JerryScript引擎 , 三星推出的适用于嵌入式设备的小型 JavaScript 引擎,2015年开源
  • Nashorn引擎,从 JDK 1.8 开始,Nashorn取代Rhino(JDK 1.6, JDK1.7) 成为 Java 的嵌入式 JavaScript 引擎,JDK1.8发布于2014年
  • QuickJS引擎, 2019 年 7 月发布
  • Hermes引擎,Facebook在Chain React 2019 大会上发布的一个崭新JavaScript引擎,用于移动端React Native应用的集成,开源

以上就是自己简单梳理的JavaScript引擎
注:
由于有些引擎找不到何时发布的具体时间,于是我把该引擎最早被应用的时间表示其发布时间

参考:

  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

你可能感兴趣的:(一篇梳理常见的JavaScript引擎)