如图,上图说明i已经被声明了,也就是不可以重复声明;而下图中却能用let重新声明,为什么?
// for是一个区块,内部又是一个小区块,你的代码可以简写为
{
let i = 0; // i作用于这个大区块
{
var i = 'abc'; // 此处的i也作用于这个大区块
console.log(i);
}
}
{
let i = 0; // i作用于这个大区块
{
let i = 'abc'; // i作用于这个小区块
console.log(i);
}
}
// 如果你这么写是可以的
for (var i = 0; i < 3; i++) {
let i = 'abc';
console.log(i);
}
// 简写
{
var i = 0; // i作用于这个大区块
{
let i = 'abc'; // i作用于这个小区块
console.log(i);
}
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
为什么let能重复声明? 图示
关于let声明跟var声明为什么会冲突? 首先 var 声明会提升到当前作用的顶端,即顺序是这样的:
var i
才是开始走for循环
才开始解析 let i = 0 --->报错
再看图