数组与对象的解构赋值总结

数组的解构赋值

//等号左边是变量,可以直接访问(模式匹配:只要等号两边的模式相同,左边的变量就会被赋予对应的值)
let [a , , c] = [1, 2, 3]
 a // 1
 c //3
// ... 三点运算符解构数组
let [...arr] = [1, 2, 3]  //多个数组合并成一个数组,移动端下拉加载可以用到
 arr  //[1, 2, 3]
//解构赋值允许指定默认值
//默认值生效的条件: 数组成员严格等于undefined,默认值才会生效
let [x = 1] = []
x //1

对象的解构赋值

//变量必须与属性同名才能取到值
let { foo } = {foo: 'aaa'}
foo // 'aaa'
// 对象的解构赋值的内部机制:先找到同名属性,再赋值给对应的变量。下行代码中:foo是匹配模式,baz才是变量
let { foo: baz } = {foo: 'aaa'}
baz // 'aaa'
foo // error: foo is not defined
//对象的解构指定默认值,默认的生效条件:对象的属性值严格等于undefined
let {x, y=5} = {x: 1}
x // 1
y //5
posted @ 2021-07-01 14:05  君归何时  阅读(145)  评论(0)    收藏  举报