每天 10 分钟,学习 JavaScript —— (十五)执行上下文栈

151 阅读1分钟

执行栈

  1. 在全局代码执行前,JS引擎就会创建一个栈来存储管理所有的执行上下文对行
  2. 在全局执行上下文(window)确定后,将其添加到栈中(压栈)
  3. 在函数执行上下文创建后,将其添加到栈中(压栈)
  4. 在当前函数执行完成后,将栈顶的对象移除(出栈)
  5. 当所有的代码执行完成后,栈中只剩下window
                    // 1. 进入全局执行上下文
    var a = 10
    var bar = function (x) {
      var b = 5
      foo(x + b)    // 3. 进入foo执行上下文
    }
    var foo = function (y) {
      var c = 5
      console.log(a + c + y)
    }
    bar(10)         // 2. 进入bar执行上下文

执行栈图例

image.png