在 Javascript 中的块内使用 var 变量隐藏 let 变量时出错

问题描述

我听说过 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...