在 JavaScript Understanding the Weird Parts 中,引用两个阶段解释了特定执行上下文的起源:
- 创建阶段 - 声明按优先级排列并使用未定义的值进行初始化
- 执行阶段 - 解决分配问题
在 this answer对于一个相关的问题,作者提到解释器对源代码进行了两次传递。
这一直是 JS 的一个特性,还是最近才出现的现象,与充当 JIT 编译器的更现代的 JS 引擎有关?
最佳答案
一般来说,一切都必须先创建后才能使用。
是的,自 first standard edition 以来,这一直是 JavaScript 的行为。 .
但是,现代引擎不再是“对源代码进行两次传递”的解释器,它们使用解析器在一次传递中提取声明和可执行命令。
关于javascript - Javascript执行上下文总是有两个阶段(创建和执行)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44748168/