for (var i = 0; i < 3; i++) {
setTimeout(function() {
console.log(i);
}, 0);
console.log(i);
}
结果是:0 1 2 3 3 3
考察了:异步、作用域、闭包。
理解后看两个例子:
<script type="text/javascript">
var j = 0;
for(var i=0;i<100;i++){
setTimeout(function(){
console.log(j);
console.log(i);
j++;
},0);
}
</script>
<script type="text/javascript">
var j = 0;
for(var i=0;i<100;i++){
setTimeout(function(){
console.log(j);
console.log(i);
},0);
j++;
}
</script>