资讯专栏INFORMATION COLUMN

JavaScript引擎

马龙驹 / 3163人阅读

摘要:由于这些是驱动的工具,因此它们由引擎提供支持。两个主要引擎是的和的引擎。然后,四个即时进程启动,分析并执行解析器生成的字节码。简单来说,这个引擎获取源代码,将其分解为字符串,获取这些字符串并将它们转换为编译器可以理解的字节码,然后执行它。

渲染引擎和JavaScript引擎

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

一,渲染引擎:

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

IE: Trident

Firefox: Gecko

Safari:Webkit

Chrome:Blink

二,JavaScript引擎

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

IE: Chakra

Firefox: TraceMonkey

Safari: Nitro

Chrome: V8

----- 段落来源

什么是JavaScript引擎?

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

更确切地说,每个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。

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

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

相关阅读:
浏览器野史
浏览器是如何渲染网页的
JavaScript引擎
javascript引擎基础

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/117130.html

相关文章

  • JavaScript引擎

    摘要:由于这些是驱动的工具,因此它们由引擎提供支持。两个主要引擎是的和的引擎。然后,四个即时进程启动,分析并执行解析器生成的字节码。简单来说,这个引擎获取源代码,将其分解为字符串,获取这些字符串并将它们转换为编译器可以理解的字节码,然后执行它。 渲染引擎和JavaScript引擎 先从一张图片来理解下这两个引擎 showImg(https://segmentfault.com/img/bVb...

    garfileo 评论0 收藏0
  • JavaScript引擎

    摘要:由于这些是驱动的工具,因此它们由引擎提供支持。两个主要引擎是的和的引擎。然后,四个即时进程启动,分析并执行解析器生成的字节码。简单来说,这个引擎获取源代码,将其分解为字符串,获取这些字符串并将它们转换为编译器可以理解的字节码,然后执行它。 渲染引擎和JavaScript引擎 先从一张图片来理解下这两个引擎 showImg(https://segmentfault.com/img/bVb...

    Tychio 评论0 收藏0
  • 浏览器之 javaScript 引擎

    摘要:书接上文浏览器之硬件加速机制本章主要讲解中广泛使用的引擎和引擎。解释器在某些引擎中,解释器主要是接收字节码,解释执行这个字节码,同时也依赖垃圾回收机制等。 showImg(https://segmentfault.com/img/remote/1460000016359609); 微信公众号:爱写bugger的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 此文章是我...

    booster 评论0 收藏0
  • 前端进阶系列(七):什么是执行上下文?什么是调用栈?

    摘要:什么是中的调用栈调用栈就像是程序当前执行的日志。当函数执行结束时,将从调用栈中出去。了解全局和局部执行上下文是掌握作用域和闭包的关键。总结引擎创建执行上下文,全局存储器和调用栈。 原文作者:Valentino 原文链接:https://www.valentinog.com/blog/js-execution-context-call-stack 什么是Javascript中的执行上下文...

    leone 评论0 收藏0
  • 推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库

    摘要:推荐一些好用的游戏引擎开发库引言如果你是一个游戏开发者,并且正在寻找一个可以与和无缝工作的游戏引擎。是另一个容易使用,适用于移动设备和桌面的游戏引擎。是一个开源的用来创建使用高级技术和服务的游戏引擎。用于建立游戏和绘图引擎。 推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库 0. 引言 如果你是一个游戏开发者,并且正在寻找一个可以与 JavaScript 和 HT...

    happen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<