使用 "let" 关键字阻止范围



示例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);

这是您在SO SOIPLET中进行ES2015检查的示例。正如您在运行时看到的那样,privateScope是未定义的。我只能假设stackblitz在转移代码时正在做一些奇怪的事情,或者是配置错误。

最新更新