Skip to content
快看这页儿写了啥...

什么是执行上下文、JS 有几种上下文?

题干

  • 执行上下文

题解

执行上下文是当前 JS 代码被解析和执行时所在环境的抽象概念。

JS 有三种主要的执行上下文:

  • 全局执行上下文(Global Execution Context):全局执行上下文是在代码开始执行时创建的,它代表了全局作用域。全局执行上下文只有一个,并且在整个代码执行过程中都存在。在全局执行上下文中,变量和函数声明会被提升,并且可以通过 this 关键字访问全局对象(如浏览器中的 window 对象)。
  • 函数执行上下文(Function Execution Context):函数执行上下文是在调用函数时创建的,每当函数被调用时都会创建一个新的函数执行上下文。每个函数执行上下文都有自己的作用域,并且可以访问函数的参数、局部变量和外部作用域中的变量。函数执行上下文在函数执行完毕后会被销毁。
  • eval 执行上下文(Eval Execution Context)eval 是 JS 中的一个函数,它可以动态地执行传入的字符串代码。当使用 eval 函数执行代码时,会创建一个 eval 执行上下文。eval 执行上下文的行为类似于函数执行上下文,但它的作用域是在调用 eval 函数的作用域中。

每个执行上下文都包含了一些重要的组成部分,如变量对象、作用域链、this 值等。变量对象用于存储变量和函数声明,作用域链用于解析变量的访问权限,this 值用于指向当前执行上下文所属的对象。

执行上下文是按照创建顺序形成的执行上下文栈(Execution Context Stack),也称为调用栈(Call Stack)。当代码执行到一个函数时,会创建一个新的函数执行上下文,并将其推入执行上下文栈中。当函数执行完毕后,对应的函数执行上下文会从栈中弹出,恢复到上一个执行上下文。

相关

什么是执行栈

eval 是做什么的、使用场景

简单阐述对 This 的理解

贡献者

isboyjc's avatar isboyjc

浏览量(PV)  次  ·  独立访客(UV)  人次
不正经的前端 | 八股 · 欢迎 star ⭐