1.es5写法:自执行函数
for(var i = 1; i <= 3;i++){
(function(i){
setTimeout(function(){
console.log(i);
},1000*i);
})(i);
}
2.es6块级作用域let
for(let n = 1; n <= 5; n++){
setTimeout(function(){
console.log(n)
},1000*n);
}
3.函数表达式的写法和上面写法效果一样
for(let m = 1; m < 6;m++){
(function(){
setTimeout(function(){
console.log(m);
},1000*m)
})();
}
4.// 地址传递
function count(){
var out = function(a){
setTimeout(function(){
console.log(a);
},1000*a);
};
for(var j = 0;j <= 3;j++){
out(j);
}
}
count();
5.setInterval
function numberNum(){
var i = 6;
var t = setInterval(function(){
i--;
console.log(i);
if(i<=0){
clearInterval(t);
}
},1000);
}