期待结果:每隔一秒输出一个累加值
- temp1:默认,为什么不行
function fn(){
for(var i = 0; i < 5; i++){
setTimeout(() => {
console.log(i)
},i*1000)
}
}
- temp2:函数参数保存值,为什么可以
function fn(){
for(var i = 0; i < 5; i++){
function inner(j){
setTimeout(() => {
console.log(j)
},j*1000)
}
inner(i)
}
}
- temp3:匿名函数传参自调,为什么可以,和temp2有什么区别
functon fn(){
for(var i = 0; i < 5; i++){
(function(){
setTimeout(() => {
console.log(i)
},i*1000)
})(i)
}
}
- temp4:使用let,为什么var不可以
function fn(){
for(let i = 0; i < 5; i++){
setTimeout(() => {
console.log(i)
},i*1000)
}
}
- temp5:还有啥方式