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

JavaScript在执行块时是否创建新的执行上下文?,javascript,ecmascript-6,v8,ecmascript-5,Javascript,Ecmascript 6,V8,Ecmascript 5,JavaScript在执行块时是否创建新的执行上下文以将其词法环境与其关联。否。而词法环境是当前范围。计算块时,不会调用任何函数 您可以在规范中阅读,它创建了一个新的词汇环境(使用块范围中的变量初始化),该环境将旧环境作为其父环境,并且“将运行执行上下文的LexicalEnvironment设置为[该值]”。执行块中的语句后,再次弹出子环境,但运行的执行上下文始终保持不变。检查“13.2.14运行时语义:BlockDeclarationInstallation”部分在中,您引用的是函数调用外部的

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

。而词法环境是当前范围。计算块时,不会调用任何函数


您可以在规范中阅读,它创建了一个新的词汇环境(使用块范围中的变量初始化),该环境将旧环境作为其父环境,并且“将运行执行上下文的
LexicalEnvironment
设置为[该值]”。执行块中的语句后,再次弹出子环境,但运行的执行上下文始终保持不变。

检查“13.2.14运行时语义:BlockDeclarationInstallation”部分在中,您引用的是函数调用外部的块还是函数调用内部的块?在块的执行完成后,LexicalEnvironment将再次设置为功能块的词法环境,对吗?在进入block语句之前,它将被设置回执行上下文的词法环境。这不一定是
函数
中的函数,而是块所在的任何范围。这是非常有用的答案。非常感谢。