执行上下文(Execution Context)是一个抽象的术语,用来描述代码执行时的环境。
每次JS代码执行时,都会进入特定的执行环境,这个特定执行环境定义了变量、函数、作用域等
分类
执行上下文,可以分为三种类型
(1)全局执行上下文:是默认的执行环境,在浏览器中,全局执行上下文就是window对象。代码在全局环境中执行时,会创建这个全局上下文
(2)函数执行上下文:每次函数被调用时,就会为该函数创建一个新的执行上下文
(3)Eval执行上下文:使用eval执行代码时,会创建一个新的eval执行上下文
执行流程
执行栈(Execution Context)是一个LIFO(后进先出)的数据结构,用于存储在代码执行期间进去的每个执行上下文。
当JS引擎开始解析一个脚本时,它首先默认进入全局执行上下文。当遇到一个函数调用时,JS引擎会为该函数创建一个新的执行上下文并将其推入执行栈。
一旦函数执行完毕,其执行上下文会从执行栈中弹出,并且控制权回到之前的执行上下文。