let arr=[1,4,5,6] for(var i=0;i<arr.length;i++){ (function(i){ setTimeout(function(){ console.log(arr[i]) },1000*i) })(i) } //加立即执行函数,异步方法变同步执行。 //如果代码中的setTimeout 方法后面的时间 1000*i 改成 1000 则是一秒内打印数组内的所有信息 for (let i = 0; i < arr.length; i++) { setTimeout(()=> { console.log('setTimeout: ' + arr[i]) }, 1000*i) } console.log('外部log: ' + i)