非解构赋值写法
var a = 1;
var b = 2;
var c = 3;
或
var a = 1;b = 2,v = 3
数组的解构赋值
let [a,b,c] = [1,2,3];
let [a,b,c] = [,2,];//此时a,c默认赋值为underfined
let [a=111,b,c] = [,2,];//此时a的值为111
对象的解构赋值
let {foo,bar } = {foo : 'hello' , bar : 'hi'};
//根据对象名称赋值,顺序无响应
//对象属性别名
let {foo:abc,bar } = {foo : 'hello' , bar : 'hi'};
console.log(abc,bar);//此时输出结果为hello,hi,正常
console.log(foo,bar);//此时输出错误,显示foo未定义
上述结果显示,如果变量有了别名,那么原来的名字就无效了
let {cos,sin,random} = Math;
console.log(typeof cos);
console.log(typeof sin);
console.log(typeof random);
直接将对应对象名称与Math进行绑定,简化了操作
对象的解构赋值也可指定默认值
字符串的解构赋值
let [a,b,c,d,e] = "hello";
//单个字符依次赋值,类似数组赋值
//若长度不匹配,
其他详细用法参见文档:
链接: https://es6.ruanyifeng.com/#docs/destructuring.