解构赋值

作者: 佛系跳伞运动员 | 来源:发表于2018-04-01 17:08 被阅读6次

    解构赋值

    数组的解构赋值

    • 嵌套,默认值,展开符
    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设置默认值
    

    相关文章

      网友评论

        本文标题:解构赋值

        本文链接:https://www.haomeiwen.com/subject/ybkacftx.html