在执行块以将其词法环境与其关联时,JavaScript是否会创建新的执行上下文。
答案 0 :(得分:2)
否即可。 execution context is essentially a call stack frame,而词汇环境是当前范围。评估块时不会调用任何函数。
你可以在evaluation semantics of blocks的规范中读到它创建一个新的词法环境(用块范围中的变量初始化),它将旧环境作为其父项,并且" 将正在运行的执行上下文的LexicalEnvironment
设置为[该值] "。执行块中的语句后,子环境会再次弹出,但正在运行的执行上下文始终保持不变。