问题描述
考虑以下 JavaScript 中的阴影示例:
let a = 99;
{
var a = 10;
let b = 11;
const c = 200;
console.log(a);
}
console.log(a);
这里出现以下错误:
SyntaxError: Identifier 'a' has already been declared
但在以下情况下,没有语法错误,代码完全有效。
var a = 99;
{
let a = 10;
let b = 11;
const c = 200;
console.log(a);
}
console.log(a);
在第二种情况下,var a
在全局范围内声明,而 let a
在块范围内声明。
但是为什么这在第一种情况下无效?
在那里,let a
将在单独的范围内声明,而 var a
应在全局范围内声明。
为什么这个案例无效?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)