执行栈和执行上下文

预计阅读时间: 2 分钟

执行上下文

执行上下文(Execution Context),一句话概括就是“代码(全局代码,函数代码)执行前进行的准备工作”,也成为“执行上下文环境”

直行JavaScript代码时,但代码执行进入一个环境时,就会为该环境创建一个执行上下文,他会在你运行代码强作一些准备工作,如确定作用域,创建局部变量对象

具体做了什么我们慢慢来看,先来看下JavaScript执行环境有哪些

JavaScript中执行环境

  1. 全局环境
  2. 函数环境
  3. eval函数环境(已不推荐使用)

那么对应的执行上下文类型同样有3种

  1. 全局执行上下文
  2. 函数执行上下文
  3. eval函数执行上下文

JavaScript运行时首先会进入全局环境,对应会生成全局上下文 程序代码中基本都会存在函数,那么调用函数就会进入函数执行环境,对应就会生成该函数的执行函数的下文

由于代码中会声明多个函数,对应的函数执行上下文也会存在多个 在JavaScript中,通过栈的存取方式来管理执行上下文,我们可称其为执行栈,或函数调用栈(Call Stack)