解构赋值可以给默认值
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
网友评论