解構賦值可以給默認值
obj = {a: 'a', b: 'b'}
{a: "a", b: "b"}
let {a = 1,b = 2,c = 3} = obj
a // "a"
c // 3
為非同名局部變量賦值
obj = {a: 'a', b: 'b'}
let {a: x, b: y, z = 'z'} = obj
x // "a"
y // "b"
z // "z"
a // error
// 同樣的:可以添加默認值
let {a: x, b: y, c: z = 'z'} = obj
嵌套對象解構
obj = {data : {
obj : {
b: 2,
a: 1
}
}}
let {data : {obj : {a ,b}}} = obj
a // 1
b // 2
嵌套數組解構
let [a, [b]] = ['a', ['b', 'c']]
a // "a"
b // 'b'
不定元素
let [a, b, ...c] = [1,2,3,,4,5,5,5]
a // 1
b // 2
c // [3, undefined, 4, 5, 5, 5]
與函數參數一樣,不定元素必須為最后一個。
克隆數組
arr = [1,2,3]
brr= arr
brr[0] = 10
arr[0] // 10
crr = [1,2,3]
let [...drr] = crr
drr[0] = 10 // 10
crr[0] // 1