2026-10-29 18:32:29
JavaScript 通过执行上下文栈(Execution Context Stack)管理代码执行,其核心机制如下:
1. 执行上下文栈的工作流程每个上下文包含三部分:
处理 let/const 声明及作用域链。
包含环境记录(变量/函数绑定)和对外层词法环境的引用。
存储 var 声明的变量(历史遗留设计)。
确定当前代码中 this 的指向(如全局对象、函数调用对象等)。
ES6 规范中的伪代码表示:
ExecutionContext = { LexicalEnvironment: <词法环境>, VariableEnvironment: <变量环境>, ThisBinding: <this 值>}4. 示例分析以代码为例:
function foo() { function bar() { console.log('bar'); } bar();}foo();上下文栈变化过程:
JavaScript 通过执行上下文栈动态管理代码执行环境,每个上下文包含词法环境、变量环境和 this 绑定。函数调用时上下文入栈,执行完毕后出栈,这一机制是理解作用域、闭包和 this 行为的核心基础。