for(var i = 1; i <= 5; i ++){ setTimeout(function timer(){ console.log(i) }, 0) }
参考答案:
解决方法:
1for(var i = 1;i <= 5;i++){ 2 (function(j){ 3 setTimeout(function timer(){ 4 console.log(j) 5 }, 0) 6 })(i) 7} 8
1for(var i=1;i<=5;i++){ 2 setTimeout(function timer(j){ 3 console.log(j) 4 }, 0, i) 5}
1for(let i = 1; i <= 5; i++){ 2 setTimeout(function timer(){ 3 console.log(i) 4 },0) 5} 6
let使JS发生革命性的变化,让JS有函数作用域变为了块级作用域,用let后作用域链不复存在。
最近更新时间:2024-07-22