谈谈javaScript执行上下文栈
js代码执行顺序是什么,大部分人都知道同步执行,js 引擎 执行代码是 一段一段分析执行;不是一行一行执行的 当一段代码执行完毕后, 会进行一个准备工作,比如:变量提升,函数声明提升.准备工作:变量提升,函数提升
当执行到一个函数的时候,就会进行准备工作,这里的“准备工作”,让我们用个更专业一点的说法,就叫做"执行上下文(00context)"
执行上下文栈
举个例子,当执行到一个函数的时候,就会进行准备工作,这里的“准备工作”,让我们用个更专业一点的说法,就叫做"执行上下文。
JavaScript 引擎创建了执行上下文栈(Execution context stack,ECS)来管理执行上下文为了模拟执行上下文栈的行为,让我们定义执行上下文栈是一个数组"
执行上下文
- 作用域链 scope
- 变量对象 GO AO (预编译)
- this 执行上下文一旦销毁,以上3个内容都销毁