一、数组解构
1.基本
let arr = [1, 2, 3]
let [a, b, c] = arr
console.log(a, b, c)
2.可嵌套
let arr = [1, [2, 3], [4, [5, 6]]]
let [a, [b, c], [d, [e, f]]] = arr
console.log(a, b, c, d, e, f)
3.可忽略
let arr = [1, [2, 3], [4, [5, 6]]]
let [a, , c] = arr
console.log(a, c)
4.不完全解构
let arr = [1, [2, 3], [4, [5, 6]]]
let [a, b] = arr
console.log(a, b)
5.剩余运算符
let arr = [1, [2, 3], [4, [5, 6]]]
let [a, ...b] = arr
console.log(a, b)
6.解构默认值
let arr = []
let [a = 1, b, c = 3] = arr
console.log(a, b, c)
二、对象解构
1.基本
let obj = { a: 1, b: 2 }
let { a, b } = obj
console.log(a, b);
2.可嵌套
let obj = { a: 1, b: { c: 2, d: 3 } }
let { a, b: { c, d } } = obj
console.log(a, c, d);
3.可忽略
let obj = { a: 1, b: { c: 2, d: 3 } }
let { a, b: { d } } = obj
console.log(a, d);
4.不完全解构
let obj = { a: 1, b: 2, c: 3 }
let { a, b } = obj
console.log(a, b);
5.剩余运算符
let obj = { a: 1, b: 2, c: 3, d: 4 }
let { a, ...rest} = obj
console.log(a,rest);
6.解构默认值
let obj = { b: 2 }
let { a = 9, b } = obj
console.log(a, b);