当前位置: 首页 >文章 > JavaScript运行期环境
收藏
分享

JavaScript运行期环境

举报李游Leo李游Leo发布于 2021-05-151236阅读0点赞
聊一聊JavaScript的底层内容...

今天我们来继续聊一聊JavaScript的底层内容,就是它的运行期环境。

运行期环境 ( 也称"执行上下文" ) 可以说是 JavaScript 最重要的一个概念。那么运行环境到底是什么呢?一句话就可以概括:代码 ( 包括函数 ) 运行时所需要的所有信息就是运行期环境。由于 ES 历经多个版本,所以运行环境的标准也一直在变,而且不同的书籍对于JavaScript运行期环境的阐述也是不一样的,例如,在《JavaScript权威指南》中,它由“JavaScript内核(Core)”和“客户端JavaScript(Client)”两部分组成;而在《JavaScript高级程序设计》中,该书把它记录为由“核心(ECMAScript)”,“文档对象模型(DOM)”,“浏览器对象模型(BOM)”三个部分组成。

并且不同的ES版本对运行期的执行标准也有非常大的出入,例如:



ES3 标准中的运行环境

scope:作用域,如果有作用域嵌套的情况就称作"作用域链"。

variable object:变量对象,用于存储标识符的特殊对象。

this value:this 值。


ES5 标准中的运行环境

variable environment:变量环境,当声明变量时使用。

lexical environment:词法环境,当获取标识符值时使用。

this value:this 值。


ES6 标准中的运行环境

variable environment:变量环境,当声明变量时使用。

lexical environment:词法环境,当获取标识符值或者 this 值时使用。

不过呢,笔者看来,从浏览器相关的内容都应该属于“应用环境”:属于宿主环境或者属于用户编程环境。而运行期环境是由宿主通过脚本引擎(JavaScript Engines)创建的,因为一个运行期环境应该包含以下的特性:

(1) 宿主环境:浏览器或者 Node 环境。

(2) 引擎:从头到尾负责整个 JavaScript 代码的编译及执行过程。

(3) 执行栈:一种遵循" 后进先出 "原则的有序数据集合,可以简单理解为使用 push() 和 pop() 操作数组。

(4) 一些其他的规范。

不过呢,这里面还是有个执行栈的概念,所谓执行栈呢,当打开网页或浏览器时,宿主环境会将代码传递给引擎去执行,引擎首先会创建一个全局执行环境。全局环境中的代码自上而下有顺序的执行,当遇到一个函数时,函数的环境被创建,函数中的代码开始执行;而在函数执行之后,控制权又返还给之前的环境。ES 这种类似于" 栈 "的控制机制,称为执行栈。

综合以上的内容,JavaScript 的运行时流程图如下:






本文原创,未经作者允许不可转载!

更多内容,欢迎关注作者微信公众号:李游Leo老师前端讲堂!


0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户133,637人)

电商海报设计训练营
距离开班仅剩10天66人已报名
【5月】零基础手绘插画训练营
距离开班仅剩10天52人已报名
【5月】零基础动态表情包创作训练营
距离开班仅剩27天15人已报名
猜你喜欢
ZooKeeper 会话的秘密

2021-04-01

小虎转载君 发表

ZooKeeper 会话的秘密
用户体验,皇帝的新衣?

2021-05-18

王M争 发表

用户体验,皇帝的新衣?
JavaScript发展简史

2021-05-13

李游Leo 发表

JavaScript发展简史
一文带大家快速掌握RabbitMQ

2020-12-27

小虎转载君 发表

一文带大家快速掌握RabbitMQ
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习89000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了36,588
并提交了234份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 89000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证