ES6爬坑之let命令

1.let与var一样,用于声明变量,但let声明的变量仅在let所在的代码块内有效。
例如:{
var a=100;
let b=200;
}
console.log(a); 100
console.log(b);// error: b is not defined

2.let不存在变量提升
3.暂时性死区:只要块级作用域内存在let命令,它的所有声明就绑定在这个区域内,不熟外部影响。

var a=200;
{
    console.log(a);//undefined
    let a=100;
    console.log(a);//100
}

4.模块内不允许重复声明

{
    var b=100;
    let b=200;
}
{
    let c=200;
    var c=100;  
}
{
    let c=100;
    let c=200;
}

以上代码通通报错。若模块内部使用了let声明一个变量,则不允许重复声明,而模块之间则允许,例如:

{
    var a=100;
    console.log(a);//100
}
{
    let a=200;
    console.log(a)//200
}

你可能感兴趣的:(ES6爬坑之路)