参考代码如下:
<!DOCTYPE html> <html> <!-- 测试for循环的阻塞机制 --> <head> <meta charset="utf-8"> <title></title> </head> <body> <script type="text/javascript"> // for (var i = 0; i < 3; i++) { // setTimeout(function() { // console.log(i); // }, (i + 1) * 1000); // } for (var i = 0; i < 3; i++) { (function(i) { setTimeout(function() { console.log(i); }, (i + 1) * 1000); })(i) } </script> </body> </html>
上面代码中,第二个for循环设置了阻塞,所以最终输出的是:0 1 2;