带“let”关键字的块范围
问题描述:
示例1:结果是我所期望的。带“let”关键字的块范围
如果我们声明let
块内部,它不应该从外部访问 范围。
{
let privateScope = 1;
function thing() {
privateScope = 2
}
}
console.log(typeof privateScope); //undefined
实施例2:变量可以外部范围来访问!
{
let privateScope = 1;
}
console.log(typeof privateScope); // number
为什么可以privateScope
可以在实施例2从块外部访问?
答
{
let privateScope = 1;
}
console.log(typeof privateScope);
这是你的例子在SO与ES2015片断检查。正如您在运行时看到的那样,privateScope
未定义。我只能假设StackBlitz在编译代码时做了一些奇怪的事情,或者它是一个配置错误。
对我来说代码#2返回“undefined”。什么是执行环境? – skyboyer
在这里没有这样做 - 无论如何,'typeof'肯定不会返回'1',所以也许在你的代码中有其他事情正在发生。 – Eevee
对于我来说,它也会返回undefined。你是console.logging别的可能是 – itsundefined