问题描述
我听说过 JS 中的阴影。我的问题是为什么我们不能用一个块中存在的 var 变量隐藏全局范围中存在的 let 变量。 例如->
let a =100;
{
var a =100;
console.log(a);
}
- 输出:-未捕获的语法错误:已声明标识符“a”。
我想到这个问题是因为我研究了 let 和 var 变量存在于不同的内存位置。所以在我看来这应该不是问题。
如果有问题,那么为什么下面的代码有效
var a = 100;
{
let a=10;
console.log(a);
}
输出:- 10
请提供详细的答案,解释每种情况下的执行上下文和变量环境。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)