//完全解構(gòu) let [a,b,c]=[1,2,3]; // a=1, b=2, c=3 // 不完全解構(gòu) var [d,[e],f]=[1,[2,3],4]; // d=1, e=2, f=4 //允許指定默認(rèn)值 var [foo="foo"]=[]; // foo="foo" //默認(rèn)值為表達(dá)式時(shí),惰性求值 function f(){ // g能取到值懂傀,函數(shù)f不會執(zhí)行 console.log("我不會執(zhí)行"); } let [g=f()]=["默認(rèn)值"]; // g="默認(rèn)值" // 默認(rèn)值可以引用解構(gòu)賦值的已經(jīng)聲明的變量 let [h=1,i=h]=[2]; // h=2, i=2
//對象的解構(gòu)賦值 var {foo,bar}={ bar:"aaa" , foo:"bbb" }; // foo="bbb", bar="aaa" //真正被賦值的是后者趾诗,不是前者 let {foo:baz}={foo:"aaa",bar:"bbb"}; // foo為模式,baz為變量 console.log(baz); // baz="aaa" console.log(foo); // ReferenceError:foo is not defined