示例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
?
答案 0 :(得分:3)
{
let privateScope = 1;
}
console.log(typeof privateScope);
以下是您在ES片段中检查ES2015的示例。正如您在运行时所看到的那样,privateScope
未定义。我只能假设StackBlitz在转换代码时做了一些奇怪的事情,或者是配置错误。