原理解析,JS 代码是如何被浏览器引擎编译、执行的?
24-05-24 11:41
949
0
本讲我先带你分析浏览器引擎对 JS 代码的编译情况,并结合你日常的 JavaScript 开发经验,一起重新理解底层的编译解析机制。对其底层原理的理解,将有助于你理解前端的跨端应用,以及一套代码生成多种小程序相关框架的底层逻辑。
那么,在课程开始前请你先思考:
JavaScript 代码被执行分为哪几个阶段?
AST 到底是做什么用的?
带着思考去学习,相信你会收获更多。现在,就让我为你介绍 V8 引擎。
V8 引擎介绍
我们先看一下当前百花齐放的编程语言,主要分为编译型语言和解释型语言。
编译型语言的特点是在代码运行前编译器直接将对应的代码转换成机器码,运行时不需要再重新翻译,直接可以使用编译后的结果。
解释型语言也是需要将代码转换成机器码,但是和编译型的区别在于运行时需要转换。比较显著的特点是,解释型语言的执行速度要慢于编译型语言,因为解释型语言每次执行都需要把源码转换一次才能执行。
我们比较清楚的,像 Java 和 C++ 都是编译型语言;而 JavaScript 和 ruby 都是解释性语言,它们整体的执行速度都会略慢于编译型的语言。
为了提高运行效率,很多浏览器厂商在也在不断努力。目前市面上有很多种 JS 引擎,例如 JavaScriptCore、chakra、V8 等。而比较现代的 JS 引擎,当数 V8,它引入了 Java 虚拟机和 C++ 编译器的众多技术,和早期的 JS 引擎工作方式已经有了很大的不同。
-
2025李永乐薛威王世安数学全程班
2024年线性代数基础课01节 行列式(作业手写版)(1).pdf2024年线性代数基础课02节 矩阵及其运算(作业手写版)(2).pdf2024年线性代数基础... 1274 0 24-08-19 -
牛牛盲盒商城微擎小程序源码带视频教程_可对接微信支付
打开一个盲盒前,你永远不知道里面是什么。但是一旦打开,就得为它买单。盲盒产品的属性多样化,市场需求不断扩大,目前正处于快速扩张的红... 1258 0 24-06-03 -
如何使用php与数据库进行交互
PHP 提供了丰富的函数和类,用于与数据库进行交互。以下是一个常见的举例步骤: 1. 连接数据库:使用 PHP 的 mysql_connect() 函数... 952 0 24-03-04 -
你的手机极有可能已经被黑客监控盯上了
你的手机如果出现这4个信号,极有可能已经被黑客盯上了。小心被监听,在我们使用手机安装来源不明的软件或浏览不了网站时,其实很容易被黑... 721 0 25-02-19 -
停车被堵如何挪车
挪车方式:最温柔:用“交管12123”APP,选择“一键挪车”功能,输入车牌号,系统会发送短信给车主个人感觉最快:市长热线12345说车牌号和... 1136 0 24-11-18 -
人事动态,请假制度表 - 企业管理表格
第一节 人事动态.DOC第一节 员工请假单(一).DOC第七节 工人请假卡.DOC第三节 人事日报表.DOC第三节 员工请假单(三).DOC第二节 人... 784 0 24-07-30 -
不懂人性何谈产品
“不懂人性何谈产品”,内容主要分为三个部分:人性不曾改变人性与需求腾讯基于人性的思考19 世纪初,随着特斯拉改进交流电,人类社会开始... 962 0 24-05-29 -
竞品分析过后就是抄吗?
你在日常的产品设计和运营过程中有没有抄过竞争对手?比如,看见竞品发布了 A 功能,你立马跟上;竞品搞了个 A 活动,你立马照搬不误?... 947 0 24-05-29
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~