首页 > 解决方案 > JS引擎编译阶段的优先顺序

问题描述

我试图了解 JavaScript 引擎编译阶段中函数和变量声明以及变量赋值和函数定义的优先顺序如何与编译阶段发生的其他事情相互作用。请告诉我这是否正确:

  1. 分配内存并设置对任何函数标识符的引用
  2. 分配内存并设置对任何变量标识符的引用
  3. 为变量赋值
  4. 对于每个函数,创建一个新的执行上下文和作用域,并添加对父作用域的引用

标签: javascripthoisting

解决方案


仅在此处引用当前标准,实际实现可能会有所不同:

15.1.11运行时语义:GlobalDeclarationInstantiation(脚本,环境)


推荐阅读