解构赋值

解构赋值

数组的解构赋值

  • 嵌套,默认值,展开符
function fn() {
    return 7;
}
let [a, [[b, ...d], c, e = 6, f = a, g = fn()]] = [1, [[2, 3], 4]];
console.log(a); // 1    不解释
console.log(b); // 2    不解释
console.log(c); // 4    不解释
console.log(d); // [3]  展开符将剩余的所有元素当做一个数组返回
console.log(e); // 6    如果e === undefined e等于默认值
console.log(f); // 1    a必须被定义如果a未被定义则报错
console.log(g); // 7    惰性求职,当给g变量赋值时才会执行fn方法

对象的解构赋值

  • 对象解构赋值的本质与简写
let {a,c} = {a:1,c:2};
//以上表达式其实是以下表达式的简写
let {a:a,c:c} = {a:1,c:2};
  • 对象解构的模式与变量
//以下表达式中的a,c是模式;b,d才是变量
let {a:b,c:d} = {a:1,c:2};
console.logc(b);//1
console.logc(d);//2
console.logc(a);//a is undefined
console.logc(c);//c is undefined
  • 对象解构综合demo
function fn() {
    return 7;
};
let obj = {};
let arr = [];
let cc, dd, ee;
({a: obj.prop, b: arr[0], cc=3, dd=obj.prop, e: ee = fn()} = {a: 1, b: 2, e: 3});
console.log(obj);       //{prop:1}
console.log(arr);       //[2]
console.log(cc);        //3
console.log(dd);        //1     dd===undefined 使用obj.prop为默认值
console.log(ee);        //3     e!=undefined 使用e给ee赋值,e===undefined使用惰性求职给ee设置默认值
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前面的话 我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新特性...
    sunnyghx阅读 769评论 0 0
  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 924评论 0 0
  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destru...
    呼呼哥阅读 437评论 0 3
  • 01、数组的解构赋值ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destruct...
    夜幕小草阅读 330评论 0 1
  • 1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Des...
    angelwgh阅读 517评论 0 0