for(var i =0;i< 10;i++) { setTimeout(function() { console.log(i) }) } // 解决输出0 1 2 3 4 5 6... // 解法1 使用es6 let // 闭包 IFFE函数 for(var i =0;i< 10;i++) { (function(j){ setTimeout(function() { console.log('IFFE', j) },0) })(i) } // 方法抽离 for(var i =0;i< 10;i++) { output(i) } function output(i) { setTimeout(function() { console.log('output', i) }, 0) } // promise