循环与全局变量的访问
循坏快速生成4个代码块,但到了执行某个函数时,i = 4;
var arr = [];
for (var i = 0; i < 4; i++) {
arr[i] = function() {
console.log(i);
}
}
arr[2](); //4
总结:其实,是先生成数组的四个元素————四个函数,但到了真正执行时,访问的都是全局变量i
循环和定时器配合用,也是同样的效果
for (var i = 0; i < 4; i++) {
var timer = setTimeout(function(){
console.log(i); //4,4,4,4
},0}
}
总结:循环的过程,先生成4个定时器,等到去执行每个定时器时候,i = 4;