ES6学习——了解游览器引擎

目前正在看CoderWhy老师的高级js课,讲的非常仔细,学到了不少,以下是我总结的部分内容,不确定对错,持续更新

JavaScript 引擎的主要功能,就是结合 JavaScript 语言的特性和本质来编译执行它。

JavaScript,一种最常用于游览器的编程语言,目前,大部分游览器都是使用V8引擎,不管是安卓PC,使用以V8为内核的谷歌游览器的人数是最多的

V8引擎,是由C++编写的,超过100多万行代码,是当下最为广泛的js虚拟机

在V8引擎架构下的JavaScript的解析流程为:

① 引入JavaScript代码

② Parse(解析器)模块会将Js转换成AST(抽象语法树),这是因为解释器(Ignition)不认识JS代码,如果函数没被调用,是不会被转换成AST的,即func()

③ Ignition解释器,会将AST(抽象语法树)转换为字节码(ByteCode)

  (转换字节码时):{
                 TurboFan:会同时收集优化所需要的信息(比如函数参数的类型,有了类型才能进行真实的计算)
                 如果只调用一次:Ignition会执行解释执行ByteCode字节码
                 }

④ TurboFan编译器,将字节码编译为CPU可以直接执行的机器码

       如果一个函数被多次调用,那么会被标记为热点函数,那么就会被TurboFan转换成优化的机器码,提高代码的性能
       但是,机器码实际上也会被返回字节码,这是因为如果后续执行函数的过程中,类型发生了转变(数字转换成字符),之前优化的机器码并不能正确的处理,会被逆向的转化成字节码

⑤ 执行代码:从上往下依次执行,可从③完成后直接执行,也可从④完成后执行

③和④可实现互相转换

JS代码,在游览器引擎下解析,转换成CPU代码,由CPU读取运行,所以电脑上也能运行,且这个解析过程,在游览器中被屏蔽掉了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值