示例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/

10-12 15:28