示例1:结果是我所期望的。
如果我们在块内部声明let
,则不应从外部访问
范围。
{
let privateScope = 1;
function thing() {
privateScope = 2
}
}
console.log(typeof privateScope); //undefined
示例2:可以在范围之外访问变量!
{
let privateScope = 1;
}
console.log(typeof privateScope); // number
为什么在示例2中从块外部访问
privateScope
? 最佳答案
{
let privateScope = 1;
}
console.log(typeof privateScope);
这是您选中ES2015的SO片段中的示例。如您所见,在运行它时,
privateScope
是未定义的。我只能假定在编译代码时,StackBlitz所做的事情很奇怪,否则是配置错误。关于javascript - 用“let”关键字阻止作用域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47611943/