es6 - lilunze/lilunze.github.io GitHub Wiki
ECMAScript6语法
let
let声明的变量只在当前区块起作用,且let声明的变量在声明之前均不可使用,在同一作用域内不能够使用let重复声明同一变量
数组的结构赋值
let [a,b,[c],d]=[1,2,[3]];
// a=1;
// b=2;
// c=3;
// d=underfine;
解构赋值允许设置默认值
let [a=1]=[];
// a=1;
只有当右边对应值严格等于underfined,默认值才会生效
let [a=1]=[2];
// a=2;
如果默认值为函数,则该函数为惰性求值
function foo(){
console.log('123');
}
let [a=foo()]=[1];
// 以上默认值不会生效,所以函数不会执行
对象的解构赋值
let {a:A,b:B}={a:123,b:456}
// A=123;
// B=456;
对象的解构赋值允许设置默认值
let {a:A=1,b:B=2}={}
// A=1;
// B=2;
字符串的解构赋值
let [a,b,c,d,e]='hello';
// a=h;
// b=e;
// c=l;
// d=l;
// e=o;
let {length:len}='hello';
// len=5;