1.首先setTimeout函数里面不能传递参数
for(var i = 0;i < 4;++i){
setTimeout(function(i){
console.log(i)
},100)
}
答案是undefined,这里虽然有考虑到函数是按值传递的,但是却没有拿到值,这个函数参数是否没有意义
for(var i = 0;i < 4;++i){
(function(num){
setTimeout(function(){
console.log(num)
},100)
})(i);
}这里就能得到预期的0,1,2,3
或者还有一种方式也能得到0,1,2,3
for (
let
i =
0;
i <
4; ++
i) {
setTimeout(
function () {
console.
log(
i)
},
100)
}