执行上下文(Execution Context

JavaScript代码执行时,会进入到一个执行上下文中。执行上下文可以理解为当前代码的运行环境。

JavaScript中的运行环境大概包括三种情况:

  • 全局环境:代码运行起来时会首先进入全局环境

  • 函数环境:当函数被调用执行时,会进入当前函数中执行代码

  • eval环境:不建议使用,这里不做介绍

因此我们可以预见的是,在一个JavaScript程序中,必定会出现多个执行上下文。

JavaScript引擎会以栈的方式来处理它们,这个栈,就是我们前面多次提到的函数调用栈(call stack)。函数调用栈规定了JavaScript代码的执行顺序。栈底永远都是全局上下文,栈顶则是当前正在执行的上下文。

当代码在执行过程中遇到以上几种情况,都会生成一个执行上下文并放入函数调用栈中,处于栈顶的上下文执行完毕之后,会自动出栈。

为了更加清晰的理解整个过程,我们可以通过几个实例来了解函数调用栈的执行规则。

results matching ""

    No results matching ""