JavaScript引擎

渲染引擎和JavaScript引擎

先从一张图片来理解下这两个引擎javascript

clipboard.png

一,渲染引擎:

主要做用是解释html和css,并绘制页面;
每种浏览器的渲染引擎可能会不同,但都遵循W3C标准开发而成,方便Web技术的互相兼容性;
比较常见的几种渲染引擎css

  • IE: Trident
  • Firefox: Gecko
  • Safari:Webkit
  • Chrome:Blink

二,JavaScript引擎

主要做用是解释并执行JavaScript;
每种浏览器也会有不一样的JavaScript引擎,但都遵循ECMAScript标准开发而成,便于兼容JavaScript技术
比较常见的几种JavaScript引擎html

  • IE: Chakra
  • Firefox: TraceMonkey
  • Safari: Nitro
  • Chrome: V8

----- 段落来源java

什么是JavaScript引擎?

JavaScript引擎的基本工做是获取开发人员编写的JavaScript代码,并将其转换为可由浏览器解释甚至嵌入到应用程序中的快速优化代码。通常会附带在网页浏览器之中。web

更确切地说,每一个JavaScript引擎都实现了ECMAScript的一个版本,其中JavaScript是一种方言。随着ECMAScript的发展,JavaScript引擎也在不断发展。有不少不一样的引擎,如:headless browser、Node.js和各类web浏览器。headless browser是指没有图形用户界面的Web浏览器,可用于运行针对Web产品的自动化测试。一个很好的例子是PhantomJS。Node.js是一个异步的,事件驱动的框架,容许在服务器端使用JavaScript。因为这些是JavaScript驱动的工具,所以它们由JavaScript引擎提供支持。浏览器

JavaScript引擎如何工做?

鉴于虚拟机的定义,将JavaScript引擎称为流程虚拟机是有意义的,由于它的惟一目的是读取和编译JavaScript代码。这并不意味着它是一个简单的引擎。例如,JavaScriptCore有六个构建块,用于分析,解释,优化和垃圾回收。服务器

JavaScript是如何工做的了?固然,这取决因而什么引擎。两个主要引擎是WebKit的JavaScriptCore和Google的V8引擎。这两个引擎处理代码的方式是不一样的。框架

  • JavaScriptCore执行一系列步骤来解释和优化脚本。它执行词法分析,将源分解为一系列具备已识别含义的标记或字符串。而后解析器分析令牌的语法并将其内置到语法树中。而后,四个即时进程启动,分析并执行解析器生成的字节码。简单来讲,这个JavaScript引擎获取源代码,将其分解为字符串,获取这些字符串并将它们转换为编译器能够理解的字节码,而后执行它。
  • 谷歌的V8引擎,用C ++编写,也编译和执行JavaScript源代码,处理内存分配,垃圾收集剩余物。它的设计包括两个编译器,它们直接将源代码汇编到机器代码中。

一旦编译过程产生机器代码,引擎就会将ECMA标准中指定的全部数据类型,操做符,对象和函数暴露给浏览器或须要使用它们的任何运行时,如NativeScript。less

这对开发人员意味着什么?

JavaScript引擎的代码解析和执行过程的目标是在最短的时间内生成最优化的代码。最重要的是,这些引擎的发展与开发Web和移动领域的过程平行,以使它们尽量地运行。
任何Web开发人员都须要了解浏览器中固有的差别,这些浏览器显示生成,调试和维护的代码。更具体地说,理解为何某些脚本在另外一个浏览器上的运行速度较慢,这一点很重要。异步

相关阅读:
浏览器野史
浏览器是如何渲染网页的
JavaScript引擎
javascript引擎基础
相关文章
相关标签/搜索