解决for循环下变量显示一致的问题

for(var i=0;i<10;i++){

  setTimeOut(function(){

   console.log("i:",i);

  },100)

}

上面显示的打印出来结果,都是 10

解决方法:

1)使用立即执行函数

for(var i=0;i<10;i++){

  (function(i){

    setTimeOut(function(){

           console.log("i:",i);

     },100)

  })(i)

}

2)let定义变量

for(let i=0;i<10;i++){

setTimeout(function(){

console.log("i:",i);

},100)
}
posted @ 2019-03-27 11:58  goodman8  阅读(370)  评论(0编辑  收藏  举报