微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。