JavaScript深入之执行上下文栈

变量提升
函数提升(定义式定义、表达式定义)

JavaScript 的可执行代码(executable code)的类型

  • 全局代码
  • 函数代码
  • eval代码

当执行到一个函数的时候,就会进行准备工作,这里的“准备工作”,让我们用个更专业一点的说法,就叫做"执行上下文(execution context)

JavaScript 引擎会创建了执行上下文栈(Execution context stack,ECS)来管理执行上下文

执行上下文的类型分为

  • 全局上下文
  • 函数上下文

当 JavaScript 开始要解释执行代码的时候,最先遇到的就是全局代码,所以初始化的时候首先就会向执行上下文栈压入一个全局执行上下文,我们用 globalContext 表示它,并且只有当整个应用程序结束的时候,ECStack 才会被清空,所以程序结束之前, ECStack 最底部永远有个 globalContex


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。