跟我学习javascript的执行上下文
编程学习 2021-07-04 21:03www.dzhlxh.cn编程入门
跟我学习javascript的执行上下文,读完本文后,你应该清楚了解释器做了什么,为什么函数和变量能在声明前使用以及它们的值是如何决定的,需要了解这些内容的朋友可以参考下
在这篇文章里,我将深入研究JavaScript中最基本的部分——执行上下文(execution context)。读完本文后,你应该清楚了解释器做了什么,为什么函数和变量能在声明前使用以及他们的值是如何决定的。
1、EC—执行环境或者执行上下文
每当控制器到达ECMAScript可执行代码的时候,控制器就进入了一个执行上下文(好高大上的概念啊)。
javascript中,EC分为三种:
- 全局级别的代码 –– 这个是默认的代码运行环境,一旦代码被载入,引擎最先进入的就是这个环境。
- 函数级别的代码 ––当执行一个函数时,运行函数体中的代码。
- Eval的代码 –– 在Eval函数内运行的代码。
EC建立分为两个阶段:进入执行上下文(创建阶段)和执行阶段(激活/执行代码)。
1)、进入上下文阶段:发生在函数调用时,但是在执行具体代码之前(比如,对函数参数进行具体化之前)
创建作用域链(Scope Chain)
创建变量,函数和参数。
求”this“的值。
2)、执行代码阶段:
变量赋值
函数引用
解释/执行其他代码。
我们可以将EC看做是一个对象。
EC={ VO:{/* 函数中的arguments对象, 参数, 内部的变量以及函数声明 *