原理解析,JS 代码是如何被浏览器引擎编译、执行的?
24-05-24 11:41
1001
0
本讲我先带你分析浏览器引擎对 JS 代码的编译情况,并结合你日常的 JavaScript 开发经验,一起重新理解底层的编译解析机制。对其底层原理的理解,将有助于你理解前端的跨端应用,以及一套代码生成多种小程序相关框架的底层逻辑。
那么,在课程开始前请你先思考:
JavaScript 代码被执行分为哪几个阶段?
AST 到底是做什么用的?
带着思考去学习,相信你会收获更多。现在,就让我为你介绍 V8 引擎。
V8 引擎介绍
我们先看一下当前百花齐放的编程语言,主要分为编译型语言和解释型语言。
编译型语言的特点是在代码运行前编译器直接将对应的代码转换成机器码,运行时不需要再重新翻译,直接可以使用编译后的结果。
解释型语言也是需要将代码转换成机器码,但是和编译型的区别在于运行时需要转换。比较显著的特点是,解释型语言的执行速度要慢于编译型语言,因为解释型语言每次执行都需要把源码转换一次才能执行。
我们比较清楚的,像 Java 和 C++ 都是编译型语言;而 JavaScript 和 ruby 都是解释性语言,它们整体的执行速度都会略慢于编译型的语言。
为了提高运行效率,很多浏览器厂商在也在不断努力。目前市面上有很多种 JS 引擎,例如 JavaScriptCore、chakra、V8 等。而比较现代的 JS 引擎,当数 V8,它引入了 Java 虚拟机和 C++ 编译器的众多技术,和早期的 JS 引擎工作方式已经有了很大的不同。
-
微信红包牛牛可运行+接龙+扫雷+PC蛋源码+含视频安装教程
游戏程序是一款以java语言为基础的游戏程序,可封装成安卓App,界面美观大方,修复了个人中心的部分功能,美化了个人中心头像。游戏升级后... 471 0 21-07-07 -
优化设计,在 IO 方面应该注意哪些要点
I/O 基础介绍I/O(Input/Output)意思是输入输出,其实就是数据传递的一个过程,作为后台服务需要更多地与外部进行数据交互,那么就免不了... 900 0 24-05-24 -
jquery垂直电量百分比
386 0 21-05-17 -
时间日期下拉选择
561 0 21-06-04 -
漂流瓶小程序
实现仿微信漂流瓶功能的关键在于理解微信小程序的前端开发和后端数据处理流程。根据提供的资料《微信小程序实战:打造仿微信漂流瓶功能》,... 1543 0 24-11-05 -
奈特骨科疾病彩色图谱
《奈特骨科疾病彩色图谱》着重介绍骨骼肌肉系统疾病的病理生理学、诊断和治疗的相关基础知识。骨骼肌肉系统疾病目前是仅次于呼吸系统疾病的... 948 0 24-06-18 -
【新文道】大学英语六级实力抢分课程资料
临门一脚背诵语料.pdf六级翻译真题精讲训练.pdf六级阅读讲义.pdf写作翻译临门一脚讲义.pdf冲刺讲义.pdf基础知识及听力场景词.pdf提分班辅导... 1005 0 24-08-18 -
彩虹易支付 - 行业领先的第三方免签约聚合收款支付平台
彩虹易支付是应用于网站程序免签约第三方支付平台,提供一站式聚合收款方式,快速接入支付宝当面付,微信扫码,码支付,财付通,QQ钱包,小微个体... 1033 0 24-02-28
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~