Javascript执行上下文是否总是有两个阶段(创建和执行)?

时间:2017-06-25 16:08:15

标签: javascript compiler-construction interpreter execution hoisting

在JavaScript中理解奇怪的部分,特定执行上下文的起源是在两个阶段中解释的:

  1. 创建阶段 - 声明优先级并使用未定义值初始化
  2. 执行阶段 - 解决分配
  3. this answer的相关问题中,作者引用了解释器,对源代码进行了两次传递。

    这是否一直是JS的一个特性,还是与更现代的JS引擎相关的最新现象,它充当了JIT编译器?

1 个答案:

答案 0 :(得分:1)

通常,必须先创建所有内容才能使用它。

是的,这是自first standard edition以来JavaScript的行为。

但是,不,现代引擎不是解释器,而且#em; 在源代码上进行两次传递"此外,他们使用解析器一次性提取声明和可执行命令。