<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
<script>
//在for中使用let定義循環(huán)變量和使用var定義循環(huán)變量的區(qū)別
for(var i=0;i<3;i++){
//console.log(i);
}
console.log(i);//3
for(let n=0;n<2;n++){
//console.log(n);
}
//console.log(n);//報(bào)錯(cuò)抹估,說n沒有定義
function csl(x){
console.log(x);//輸出兩個(gè)2
}
console.log("var m=0;m<2;m++")
for(var m=0;m<2;m++){
csl(m);//兩次循環(huán)分別輸出0切揭、1
}
for(let l=0;l<2;l++){
csl(l);////兩次循環(huán)分別輸出0级野、1
}
console.log('var q=7;q<9;q++');
for(var q=7;q<9;q++){
setTimeout(function(){
console.log(q);//兩次循環(huán)中都輸出9
},1000);
}
for(let p=7;p<9;p++){
setTimeout(function(){
console.log(p);//兩次循環(huán)中分別輸出7奥务、8
},1000);
}
//模擬var的偽塊級作用域
for(var o=3;o<5;o++){
(function(o){
setTimeout(function(){
console.log(o);//兩次循環(huán)中分別輸出3和4
},1000)
})(o);
}
</script>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>for中l(wèi)et和var的區(qū)別2</title>
</head>
<body>
</body>
<script>
let arr=[];
for(var i=0;i<3;i++){
arr.push(function(){
return i;
});
}
console.log(arr[0]);
console.log(arr[0]());//3 每次循環(huán)都把一個(gè)函數(shù)壓到數(shù)組里,但是函數(shù)在開始執(zhí)行的時(shí)候i已經(jīng)成3
let brr=[];
for(let n=0;n<3;n++){
brr.push(function(){
return n;
});
}
console.log(brr[0]);
console.log(brr[0]());//0
let crr=[];
for(var c=0;c<3;c++){
(function(c){
crr.push(function(){
return c;
})
})(c);
}
console.log(crr[0]);
console.log(crr[0]());//0
console.log(crr[1]());//1
</script>
</html>