JavaScript引擎,V8引擎的原理

为什么需要JavaScript引擎?

高级的编程语言都是需要转成最终的机器指令来执行

我们所编写的js无论h是交给浏览器或者node执行,最后都是需要被CPU执行的

CPU只认识自己的指令集(机器语言)才能被CPU所执行

所以我们需要js引擎帮助我们将js代码翻译成CPU指令来执行

比较常见的Javascript引擎

SpiderMonkey:第一款JavaScript引擎,由Brendan Eich(JS作者)开发

Chakra:微软开发,用于IT浏览器

JavaScriptCore:WebKit中的JavaScript引擎,Apple公司开发

V8:Google开发的强大JavaScript引擎,也帮助Chrome从众多浏览器中脱颖而出

例:WebKit(浏览器内核),WebKit由两部分组成

WebCore:负责HTML解析、布局、渲染等等相关的工作

JavaScriptCore(JSCore):解析、执行JavaScript代码

在小程序中编写的JavaScript代码就是被JSCore执行的

小程序的运行环境分成渲染层和逻辑层,其中 WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。

小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了WebView 进行渲染;逻辑层采用JsCore线程运行JS脚本。一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微信客户端(下文中也会采用Native来代指微信客户端)做中转,逻辑层发送网络请求也经由Native转发,小程序的通信模型下图所示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值