JS中的作用域
1.let块级作用域
- 不会报错,因为这是两个不同的作用域
{
let a = 1
}
{
let a = 2
}
2.var定义的变量会成为window的对象
3.使用var模拟出块级作用域
- 立即执行函数
for(var i = 0;i<=3;i++){}
(
function(a){
setTimeout(()=>{
console.log(a)
},1000)
}
)(i)
4.模拟多级作用域嵌套
let arr = []
for(let i= 0;i<=4;i++){
arr.push(
function(){
return i
}
)
}
let arr = []
for(var i= 0;i<=4;i++){
// 立即执行函数
(function(i){
arr.push(
function(){
return i
}
)
})(i)
}