zzzmj / duola-blog

哆啦的博客

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

javascript之执行上下文

zzzmj opened this issue · comments

commented

1. 执行上下文

1.1 定义

执行上下文可以理解为当前代码的执行环境,它会形成一个作用域。
每个执行上下文都包含三个东西

  • 变量对象
  • 作用域链
  • this

存在生命周期

  • 创建阶段
    在这个阶段中,执行上下文会创建变量对象,建立作用域链,以及确认this的指向
  • 代码执行阶段
    创建完成之后,就会开始执行代码,这个时候,会完成变量赋值,函数引用

1.2 类型

javascript中的运行环境大概为三种

  • 全局环境:只有一个,浏览器中的全局对象就是 window 对象
  • 函数环境:在函数被调用的时候才会被创建,每次调用函数都会创建一个新的执行上下文。
  • eval(不建议使用,忽略)

1.3 执行栈

在js中,会有很多执行上下文,js会用执行栈来处理这些上下文

第一个肯定是将全局执行上下文push到栈里

然后每调用一次函数,就将函数的执行上下文push到栈里