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依然可以访问,值等于最后一次循环后的值。