解構賦值

解構賦值

數組的解構賦值

  • 嵌套,默認值,展開符
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閱讀 765評論 0 0
  • 1.數組的解構賦值 2.對象的解構賦值 3.字符串的解構賦值 4.數值和布爾值的解構賦值 5.函數參數的解構賦值 ...
    卞卞村長L閱讀 922評論 0 0
  • 數組的解構賦值 基本用法 ES6允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destru...
    呼呼哥閱讀 435評論 0 3
  • 01、數組的解構賦值ES6 允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destruct...
    夜幕小草閱讀 325評論 0 1
  • 1.數組的解構賦值 基本用法 ES6 允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Des...
    angelwgh閱讀 514評論 0 0