javascript陷阱
2013-01-23 20:17:18
$(document).ready(function() { for (var i = 0; i & lt; 10; i++) { setTimeout(console.log(i), 1000) } });
输出结果
0
1
2
3
4
5
6
7
8
9
$(document).ready(function() { for (var i = 0; i & lt; 10; i++) { setTimeout(function() { console.log(i); }, 1000); } });10 10 //输出十次10
第一个显示如我们所料,而第二是因为,我们在for循环中定义的变量i,在for循环结束后还没有走出它的作用域,也就是说for循环之后,i依然可以访问,值等于最后一次循环后的值。