当前位置:网站首页>执行栈和执行上下文
执行栈和执行上下文
2022-08-02 14:03:00 【lu_shang】
什么是作用域,什么是作用域链?
规定变量和函数可使用的范围称作作用域
每个函数都有一个作用域链,查找变量或函数时,需要从局部作用域到全局作用域依次查找,这些作用域的集合成为作用域链
什么是执行栈,什么是执行上下文?
1、 执行栈(先进后出)
当进入一个执行环境,就会创建出它的执行上下文,然后进行压栈,当程序执行完成时,它的执行上下文就会被销毁,进行弹栈。
栈底永远是全局环境的执行上下文,栈顶永远是正在执行函数的执行上下文。
只有浏览器关闭的时候全局执行上下文才会弹出
2、 执行上下文分
执行上下文分为:
全局执行上下文:创建一个全局的window对象,并规定this指向window,执行js的时候就压入栈底,关闭浏览器时候才弹出。
函数执行上下文:每次调用函数时,会创建一个新的函数执行上下文。执行上下文分为创建阶段和执行阶段。 创建阶段:函数环境会创建变量对象:arguments对象(并赋值),函数声明(并赋值),变量声明(不赋值),函数表达式(不赋值);会确定this指向,会确定作用域。 执行阶段:变量赋值、函数表达式赋值,使变量对象变成活跃对象
边栏推荐
猜你喜欢
随机推荐
YOLOv7使用云GPU训练自己的数据集
Flask框架的搭建及入门
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十章)
8580 合并链表
C语言日记 5 运算符和表达式
第十一单元 序列化器
C语言待解决
重新学习编程day1 【初始c语言】【c语言编写出计算两个数之和的代码】
Programming Specifications - LiteOS
paddle window10环境下使用conda安装
drf serializer - Serializer
The IDEA of packaged jar package
C语言sizeof和strlen的区别
Basic operations of 8583 sequential stack
Unit 3 view layer
Hands-on OCR (1)
第十五单元 分页、过滤
8581 Linear linked list inversion
第十单元 前后连调
Flask framework