执行上下文和执行栈

执行上下文

只要js代码运行,那么他一定是运行在执行上下文中。执行上下文是一个抽象的概念

分为全局执行上下文和函数执行上下文还有eval函数执行上下文

函数执行上下文只有在调用函数的时候才会产生

执行上下文分为两个阶段

1、创建阶段

2、执行阶段

创建阶段

在创建阶段中

首先创建变量对象

1、确定函数得到形参(并赋值)

2、函数环境会初始化创建arguments对象(并赋值)

3、确定普通字面量形式的函数声明(并赋值)

4、变量声明,函数表达式声明(未赋值)

在变量声明时,如果该变量名已经存在,那么就不会再声明

然后确定this

最后确定作用域

执行阶段

正常执行代码

通过执行上下文的概念就可以很好的理解变量提升的问题,当然普通函数也是存在变量提升的

执行栈

执行栈遵循

先进后出,后进先出的原则

最先进栈的是全局执行上下文,最后出栈的也是全局执行上下文

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软工不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值