变量提升
函数提升(定义式定义、表达式定义)
JavaScript 的可执行代码(executable code)的类型
- 全局代码
- 函数代码
- eval代码
当执行到一个函数的时候,就会进行准备工作,这里的“准备工作”,让我们用个更专业一点的说法,就叫做"执行上下文(execution context)
JavaScript 引擎会创建了执行上下文栈(Execution context stack,ECS)来管理执行上下文
执行上下文的类型分为
- 全局上下文
- 函数上下文
当 JavaScript 开始要解释执行代码的时候,最先遇到的就是全局代码,所以初始化的时候首先就会向执行上下文栈压入一个全局执行上下文,我们用 globalContext 表示它,并且只有当整个应用程序结束的时候,ECStack 才会被清空,所以程序结束之前, ECStack 最底部永远有个 globalContex

网友评论