数组解构赋值
let a,b,c;
[a,b] = [1,2]//a=1;b=2;
..
let a,b,c;
[a,b,c=3] = [1,2]//a=1;b=2,c=3;
..
let a,b,c;
[a,b,c] = [1,2]//a=1;b=2,c=undefined;
..
let a = 1;let b = 2;
[a,b]=[b,a]//变量交换值
..
function f(){//使用场景
return [1,2]
}
[a,b]=f();
..
function f(){//使用场景,返回多个值,选择性接收变量
return [1,2,3,4,5]
}
let a,b,c;
[a,,,b]=f();//a=1,b=4
..
function f(){//使用场景,不确定返回值的多少
return [1,2,3,4,5]
}
let a,b,c;
[a,,...b]=f();//a=1,b=[3,4,5]
..
let a,b,c;
[a,b,...c] = [1,2,3,4,5,6]//a=1;b=2;c=[3,4,5,6]
............
对象解构赋值
let a,b;
({a,b}={a:1,b:2})//a=1;b=2;
..
let o = {p:42,q:true}
let {p,q} = o;//p=42,q=true
..
let {a=10,b=5}={a:3};//a=3,b=5
..
let a ={//运用场景,后台返回json数据
title:'abc',
test:[{
title:'test
}]
}
let {title:t1,test:[{title:t2}]}=a;//t1='abc';t2='test'