let和var的一些总结

let作用于"当前"块级作用域,var声明的变量实际是挂在全局变量window下的,下面几个例子方便更好的理解:
 
demo0:
//块级作用域
{
var a = 1;
let b = 2;
}
 
console.log(a);//会正常打印
console.log(b);//会被提示undefined

demo1:
//块级作用域
if(true){
    var a = 1;
    let b = 2;
}
//类似的,for语句等均为块级作用域
 
console.log(a);//会正常打印
console.log(b);//会被提示undefined

demo2:
//不是块级作用域
function f() {
    console.log("执行f方法");
    var c = 3;
    console.log("f中的c="+c);
}
f();
console.log(c);//会被提示undefined
 
 

 demo3:
//块级作用域
for (var i=0;i<4;i++){
    console.log(i);
}
console.log(i);//这里会打印出4

//块级作用域
for (var i=0;i<4;i++){
    console.log(i);
}
console.log(i);//这里会打印出4

for(i=i;i<10;i++){
    console.log(i);
}

猜你喜欢

转载自www.cnblogs.com/liuwei0413/p/12735859.html
今日推荐