js引擎

作者: 豌豆儿_e31d | 来源:发表于2019-05-15 21:47 被阅读0次

---

title: js引擎

date: 2019-05-15 21:34:37

categories: js

tags:js

---

JavaScript引擎是一个专门处理JavaScript脚本的程序虚拟机,一般会附带在网页浏览器之中。

例如

 v8,用c++编写,Google Chrome一部分,也用于node.js

JavaScriptCore ,用于webkit型浏览器,如Safari

spidermonkey,第一款JavaScript引擎,用于如Firefox

chakra(Jscript引擎),用于IE11

chakra(JavaScript引擎),用于Microsoft Edge

1.基本工作是把开发人员写的 JavaScript 代码转换成高效、优化的代码,这样就可以通过浏览器进行解释甚至嵌入到应用中。很难界定JavaScript引擎是编译器还是解释器。因为像V8引擎,为了提高JS的运行性能,在运行之前会将js编译为本地的机器码,然后再去执行机器码。

2.组成:

编译器。主要工作是将源代码编译成抽象语法树,然后在某些引擎中还包含将抽象语法树转换成字节码。

解释器。在某些引擎中,解释器主要是接受字节码,解释执行这个字节码,然后也依赖来及回收机制等。

JIT工具。一个能够JIT的工具,将字节码或者抽象语法树转换成本地代码,当然它也需要依赖牢记

垃圾回收器和分析工具(profiler)。它们负责垃圾回收和收集引擎中的信息,帮助改善引擎的性能和功效。

3.工作原理

JavaScriptCore:

           源代码->抽象语法树->字节码

           通过词法分析器将源代码构建为抽象语法树,解析器生成字节码,4个JIM进程分析和执行字节码。

v8:

           源代码->抽象语法树->本地码   

           v8引擎并不将抽象语法树转化为字节码或其他中间表示,是为了减少这部分的时间,这部分在网页加载的时候完成,虽然可以提高优化的可能,但是带来巨大的时间浪费。

4.JavaScript引擎和ECMAscript的关系:前者根据后者定义的规则来解析js代码

5.JavaScript引擎和浏览器的关系

JavaScript引擎是浏览器的组成部分之一,不同的浏览器采用了不同的JavaScript引擎。

对于网页的工作来说,需要两个引擎。渲染引擎和JavaScript引擎。 渲染引擎负责网页的渲染;JavaScript引擎负责JavaScript代码执行。

JavaScript引擎提供调用接口被渲染引擎使用,渲染引擎使用的JavaScript引擎来处理js代码并获得结果。此外,JavaScript引擎需要渲染引擎提供桥接的接口以便能够访问渲染引擎构建的DOM树,操作DOM。js引擎和渲染引擎 属于互相调用的关系

相关文章

  • 游戏相关

    现有跨平台游戏引擎 物理引擎 Javascript物理引擎:matter-js, verlet-js, physi...

  • async 和 defer

    HTML加载过程 1. 两个引擎 浏览器的引擎可以分为渲染引擎和 JS 引擎。 JS 引擎相对独立,而渲染引擎又包...

  • 浏览器内核、渲染引擎、js引擎

    浏览器内核可以分为两部分:渲染引擎和JS引擎最开始渲染引擎和js*引擎并没有区分的很明确,后来JS引擎越来越独立,...

  • 浏览器内核简介

    什么是浏览器内核 浏览器引擎分为排版引擎和Js引擎两种。js引擎就是解释执行javascript的,而排版引擎就是...

  • 00 NodeJs基础

    NodeJs 输入内容 运行node app.js 全局对象 引擎 js引擎电脑不识别也不理解jsjs引擎的作用就...

  • 怎么来理解Js是单线程的这句话?

    Js是单线程指的是执行Js代码的只有Js引擎主线程。Js在js引擎中同步执行,永远都是运行执行栈最顶部的代码。那么...

  • nodejs Event Loop

    1.前置知识 node.js是一个可以运行js的平台包括fs模块、http模块以及JS引擎(v8) js引擎(单线...

  • 基础知识 console.dir()

    1、浏览器执行过程:浏览器有两部分组成,渲染引擎和js引擎。渲染引擎解析html和css。js引擎是逐行解释执行。...

  • 浅谈浏览器内核

    主要分为:渲染引擎(Layout Engine或Rendering Engine)和JS引擎。 渲染引擎:负责取得...

  • js的补充

    浏览器分为: shell 内核 内核又分为: 渲染引擎(语法规则和渲染) JS引擎 其他模块 JS...

网友评论

      本文标题:js引擎

      本文链接:https://www.haomeiwen.com/subject/xjqvaqtx.html