//不存在变量的声明提前
console.log(a);//errlet a=0;
{
let a=10;
var b=100;
}
console.log(a); //ReferenceError: a is not defined
console.log(b); //100---------//for循环{}内单独子作用域不去()中
for(let i=0;i<5;i++){
let i='aaa';
console.log(i);}
//输出5个aaa-----------var a=a; //succlet a=a; //err//let不能重复声明let a=0;
let a=1;
//以下正确,不同的域内 可以嵌套
{
let a=0;
{
let a=1;
}
}
let [a,b,c]=[1,2,3];
//以上等价于let a=1;
let b=2;
let c=3;
let [x,y]=[1,2,3];
// x=1; y=2;let [a,[b],d]=[1,[2,3],4];
//a=1,b=2,d=4;//等号右边如果不是数组(可遍历的结构)报错。 let [a]=1;
let [a]=false;
let [a]= null;
let [a] ={};
//允许设置默认值let [x,y='3']=['abc'];
//x='abc',y='3';
Object
let {a,b}={a:'name',b:'age'}
// a=name,b=age;
let {a,b}={b:'age',a:'name'}
//同上,与顺序无关,与属性名对应