在 JavaScript 中,执行上下文(Execution Context)和作用域链(Scope Chain)是理解 JavaScript 运行机制的两大核心概念。理解它们,就能真正搞懂变量提升(Hoisting)、闭包(Closure)和 指向等高级特性。 下面为你系统、深入地拆解这两个概念及其相互关系。 --- 一、 执行上下文(Execution Context) 1. 什么是执行上下文? 执行上下文可以理解为 JavaScript 代码执行时的环境。每当 JavaScript 引擎开始执行一段代码时,它都会先创建一个执行上下文。你可以把它想象成一个“容器”,里面装着代码运行所需的所有信息(变量、函数声明、 等)。 2. 执行上下文的三种类型: 全局执行上下文(Global Execution Context):默认的、最基础的上下文。代码一开始运行就会创建。它会做两件事:创建一个全局对象(浏览器中是 ),并将 指向这个全局对象。一个程序中只有一个全局上下文。 函数执行上下文(Function Execution Context):每当一个函数被调用(执行)时,都会为该...