JavaScript在执行块时是否会创建新的执行上下文?

时间:2017-10-01 18:01:06

标签: javascript ecmascript-6 v8 ecmascript-5

在执行块以将其词法环境与其关联时,JavaScript是否会创建新的执行上下文。

1 个答案:

答案 0 :(得分:2)

即可。 execution context is essentially a call stack frame,而词汇环境是当前范围。评估块时不会调用任何函数。

你可以在evaluation semantics of blocks的规范中读到它创建一个新的词法环境(用块范围中的变量初始化),它将旧环境作为其父项,并且" 将正在运行的执行上下文的LexicalEnvironment设置为[该值] "。执行块中的语句后,子环境会再次弹出,但正在运行的执行上下文始终保持不变。