阻止范围与"让"关键词

时间:2017-12-02 19:56:43

标签: javascript scope ecmascript-6 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

1 个答案:

答案 0 :(得分:3)

{
  let privateScope = 1;
}
console.log(typeof privateScope);

以下是您在ES片段中检查ES2015的示例。正如您在运行时所看到的那样,privateScope未定义。我只能假设StackBlitz在转换代码时做了一些奇怪的事情,或者是配置错误。