解构赋值在我们写项目中经常使用,其语法也是非常简单 :等号左边是解构目标, 等号右边是解构源
一、数组的解构
const [ a, b, c] = [1, 2 ,3]; // 基本解构 a=1, b=2, c=3;
const [a, [ [ b ], c,] ] = [1, [ [ 2 ],3 ] ]; 嵌套解构 a=1, b=2, c=3
const [ a, ,b] = [1, 2, 3] // 忽略 a=1 b=3
const [ a=1, b] = [ ]; // 不完全解构 a=1, b=undefined
const [a, ...b] = [1, 2, 3 ]; // 剩余运算符 a=1 b=[2,3]
const [a, b ,c, d, e] = 'zhong'; // 字符串解构 a='z' b='h' c= 'o' d='n' e='g'
解构默认值
const [a=2] = [undefined]; / a=2
const [ a=3, b=a] = []; a=3 b=3
const [ a=3, b=a] =[1]; a=1 b=1
const [ a=3, b=a] = [1, 2] a=1 b=2
二、对象解构
const { foo, bar } = { foo: 'a', bar:'b'} // 基本解构 foo='a' bar ='b'
const { baz: foo } = {baz: 'a'}; / foo='a'
const obj = { p: [ 'a', { b: '2'}]}; // 嵌套解构
{ p: [ x, { y }] } = obj; x='a' y='2'
const obj = { p: [ 'a', { b: 'word' }] }; //忽略
const { p: [ x,{}] } = obj; x='a'
const obj = { p: [ { a: ' haha'} ] }; // 不完全解构
const { p: [ { x } , y ] } = obj; x='haha' y=undefined
const { a, b, ...others} = { a: 20, b: 20, c: 20, e: 20, f: 20}; // 剩余运算符 a=20 b=20
const { a= 20, b= 30 } = {a: 3}; 解构默认值 a=3, b=30
const array = 'suzhongbao, niuchunlei, duanweiqiang, zhujinqian, feikun, zhufenfen';
const { 1: a, 3: b } = array.split(',');
a='suzhongbao'
b='zhujinqian'