定义

执行上下文时是代码执行时的环境,JS代码在运行前进行编译,那么会生成两部分,一部分是可执行的代码,而另一部分则是执行上下文。

发展

执行上下文所包含的内容是在不断的变化的。它主要分为了三个不同的阶段。分别是ES3阶段,ES5阶段和ES9阶段

ES3阶段

  • variable object:变量对象,用于存储变量的对象。
  • scope:作用域,也常常被叫做作用域链。
  • this

ES5阶段

  • variable environment:变量环境, 当声明变量时使用。(此环境还包含了一个外部引用,用来指向外部的执行上下文,我们把这个外部引用称为 outer(外部环境))
  • lexical environment:词法环境, 当获取变量时使用。
  • this

ES9阶段

正常情况

正常情况会有如下四种

  • variable environment:变量环境,当声明变量时使用。
  • lexical environment:词法环境,当获取变量或者 this 值时使用。
  • code evaluation state:用于恢复代码执行位置。
  • Realm:使用的基础库和内置对象实例。

️:this 值被归入 lexical environment

特定情况

在特定的情况下又会有如下三种

  • Function:执行的任务是函数时使用,表示正在被执行的函数。
  • ScriptOrModule:执行的任务是脚本或者模块时使用,表示正在被执行的代码。
  • Generator:仅生成器上下文有这个属性,表示当前生成器

参考

TC39规范:https://tc39.es/ecma262/#sec-type

浏览器原理与实践

重学前端

最新文章

  1. IIS与Apache共用80端口
  2. 图——拓扑排序(uva10305)
  3. HTML a标签、4个伪类、常用属性(下载)、锚链接(待扩展:邮件、电话、短信、GPS)
  4. CSS3媒体查询能检测到的特性小结
  5. ElasticSearch学习记录
  6. 【position也可以很复杂】当弹出层遇上了鼠标定位(下)
  7. iOS 字典自动生成模型
  8. java对于文件传输时---编码格式的一些设置方法
  9. 玄机论坛Socket类库源码 当前版本 2.6.3 更新日期:10-09/2015 z
  10. jquery checkbox 选中 全选 插件
  11. oracle之分组内的字符串连接
  12. 关于ISAPI和CGI限制,这个要设为允许
  13. Oracle中的Truncate和Delete语句
  14. spring和UEditor结合
  15. NET中解决KafKa多线程发送多主题的问题
  16. maven 构建参数和命令
  17. iis asp.net4.0注册
  18. [Offer收割]编程练习赛13 解题报告
  19. 比较器(TreeSet和优先队列,可以对里面的元素按照自己的意愿进行排序)
  20. 第十一周(11.24-12.01)----WBS功能分解

热门文章

  1. 实现MFC扩展DLL中导出类和对话框
  2. Spring-AliasRegistry
  3. 让对象拥有状态——C#中的状态模式
  4. C program Language 'EOF' and 'getchar()'
  5. GAN网络从入门教程(二)之GAN原理
  6. 状压DP之中国象棋
  7. 【Windows10】如何使用Segoe MDL2 Assets图标
  8. 代码注入——c++代码注入
  9. CVE-2020-5902 F5 BIG-IP 远程代码执行漏洞
  10. day62 作业