执行上下文

执行上下文概念

执行上下文(Execution Context):函数执行的准备工作(也称执行上下文环境)

运行JavaScript代码的时候,当代码执行进入一个环境时,就会为该环境创建一个执行上下文,它会在运行代码前做一些准备工作,如:确定作用域、创建局部变量对象等。

JavaScript中执行环境

1、全局环境

2、函数环境

3、eval函数环境

与之对应的执行上下文类型有

1、全局执行上下文

2、函数执行上下文

3、eval函数执行上下文

JavaScript中管理多个执行上下文

函数编程中,代码中会声明多个函数,对应的执行上下文也会产生多个。在JavaScript中,通过栈的存取方式来管理执行上下文,我们可以称其为执行栈,或函数调用栈(Call Stack)。

                        

总结栈数据结构的特点:
1.先进后出,后进先出
2.出口在顶部,且仅只有一个

首先来看一个示例:

堆栈示意图如下:

执行上下文的生命周期:

1、创建阶段(进入执行上下文):函数被调用时,进入函数环境,为其创建一个执行上下文,此时进入创建阶段。

2、执行阶段(代码执行):执行函数中代码时,此时执行上下文进入执行阶段。

1、创建变量对象

·函数环境会初始化创建 Arguments 对象,形式参数(并赋值)

·普通函数声明(并赋值)

·局部变量声明,函数表达式声明(未赋值)

2、初始化作用域链

3、确定 this 指向(this由调用者确定)

4、确定作用域

原文地址:https://www.cnblogs.com/x0815/p/11967843.html