当前位置:网站首页>执行栈和执行上下文
执行栈和执行上下文
2022-08-02 14:03:00 【lu_shang】
什么是作用域,什么是作用域链?
规定变量和函数可使用的范围称作作用域
每个函数都有一个作用域链,查找变量或函数时,需要从局部作用域到全局作用域依次查找,这些作用域的集合成为作用域链
什么是执行栈,什么是执行上下文?
1、 执行栈(先进后出)
当进入一个执行环境,就会创建出它的执行上下文,然后进行压栈,当程序执行完成时,它的执行上下文就会被销毁,进行弹栈。
栈底永远是全局环境的执行上下文,栈顶永远是正在执行函数的执行上下文。
只有浏览器关闭的时候全局执行上下文才会弹出
2、 执行上下文分
执行上下文分为:
全局执行上下文:创建一个全局的window对象,并规定this指向window,执行js的时候就压入栈底,关闭浏览器时候才弹出。
函数执行上下文:每次调用函数时,会创建一个新的函数执行上下文。执行上下文分为创建阶段和执行阶段。 创建阶段:函数环境会创建变量对象:arguments对象(并赋值),函数声明(并赋值),变量声明(不赋值),函数表达式(不赋值);会确定this指向,会确定作用域。 执行阶段:变量赋值、函数表达式赋值,使变量对象变成活跃对象
边栏推荐
- 猜数字游戏,猜错10次关机(srand、rand、time)随机数生成三板斧(详细讲解!不懂问我!)
- redis delay queue
- Introduction and use of Haystack
- Error Correction Design Principle of Hamming Check Code
- C语言日记 5 运算符和表达式
- Flask framework in-depth
- Flask framework in-depth two
- [ROS](06)ROS通信 —— 话题(Topic)通信
- Raj delivery notes - separation 第08 speak, speaking, reading and writing
- C语言日记 6 基本输入/输出
猜你喜欢
Hands-on OCR (1)
[ROS](02)创建&编译ROS软件包Package
重新学习编程day1 【初始c语言】【c语言编写出计算两个数之和的代码】
第十五单元 分页、过滤
Chapter6 visualization (don't want to see the version)
猜数字游戏,猜错10次关机(srand、rand、time)随机数生成三板斧(详细讲解!不懂问我!)
深度学习框架pytorch快速开发与实战chapter3
paddleocr window10 first experience
MobileNet ShuffleNet & yolov5替换backbone
Unit 10 Continuous Tuning
随机推荐
第四单元 路由层
Raj delivery notes - separation 第08 speak, speaking, reading and writing
Unit 7 ORM table relationships and operations
How does Apache, the world's largest open source foundation, work?
C语言日记 3 常量
8580 合并链表
The IDEA of packaged jar package
第八单元 中间件
Programming Specifications - LiteOS
Implementation of redis distributed lock and watchdog
Flask框架深入二
第六单元 初识ORM
C语言日记 1“Hello world“
run yolov5
8581 线性链表逆置
Flask框架的搭建及入门
8581 Linear linked list inversion
chapter7
Unit 5 Hold Status
[ROS] Introduction to common tools in ROS (to be continued)