数组解构赋值
let a,b,rest; [a,b]=[1,2]; console.log(a,b);//1 2…rest数组解构赋值
let a,b,rest; [a,b,...rest]=[1,2,3,4,5,6]; console.log(a,b,rest);//1 2 (4) [3, 4, 5, 6]对象解构赋值
let a,b; ({a,b}={a:1,b:2}); console.log(a,b);//1 2解构赋值中的默认值,防止没有配对成功中的undefined
let a,b,c,rest; [a,b,c=3]=[1,2]; console.log(a,b,c);//1 2 3解构赋值用于变量交换
let b=2; [a,b]=[b,a]; console.log(a,b);//2 1 function f(){ return [1,2] } let a,b; [a,b]=f(); console.log(a,b);//1 2返回多个值时选择性的接收其中的值
function f(){ return [1,2,3,4,5] } let a,b,c; [a,,,b]=f(); console.log(a,b);//1 4…用于不确定数组返回的长度为多少,把第一个元素取出,其他的返回一个数组
function f(){ return [1,2,3,4,5] } let a,b,c; [a,,...b]=f(); console.log(a,b);//1 (3) [3, 4, 5]对象解构赋值按照key:value去匹配
let o={p:42,q:true}; let {p,q}=o; console.log(p,q);//42 true对象解构赋值使用默认值
let {a=10,b=5}={a:3} console.log(a,b);//3 5嵌套对象使用
let metaDate={ title:'abc', test:[{ title:'test', desc:'description' }] } let {title:esTitle,test:[{title:cnTitle}]}=metaDate; console.log(esTitle,cnTitle);//abc test //1 4abc test