谈谈javaScript执行上下文栈

104 阅读1分钟

谈谈javaScript执行上下文栈

js代码执行顺序是什么,大部分人都知道同步执行,js 引擎 执行代码是 一段一段分析执行;不是一行一行执行的 当一段代码执行完毕后, 会进行一个准备工作,比如:变量提升函数声明提升.准备工作:变量提升,函数提升

当执行到一个函数的时候,就会进行准备工作,这里的“准备工作”,让我们用个更专业一点的说法,就叫做"执行上下文(00context)"

执行上下文栈

举个例子,当执行到一个函数的时候,就会进行准备工作,这里的“准备工作”,让我们用个更专业一点的说法,就叫做"执行上下文。 JavaScript 引擎创建了执行上下文栈(Execution context stack,ECS)来管理执行上下文为了模拟执行上下文栈的行为,让我们定义执行上下文栈是一个数组"

执行上下文

  1. 作用域链 scope
  2. 变量对象 GO AO (预编译)
  3. this 执行上下文一旦销毁,以上3个内容都销毁