数组的解构赋值
按照一定模式从数组和对象中提取值,然后对变量进行赋值,该操作即为解构(Destructuring)
本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值
举例:
如果解构不成功,变量的值就等于undefined
若赋值不是数组则会报错
默认值
如果默认值是一个表达式,会采用惰性求值,只有在用到时才会求值
默认值可以引用解构赋值的其他变量,但该变量必须已经声明,否则会报错
对象的解构赋值
与数组不同数组的元素是按次序排列的,变量的取值是由它的位置决定
对象的属性没有次序,变量必须与属性同名才能取到正确的值
let { bar, foo } = { foo: "aaa", bar: "bbb" };
let { bar } = { foo: "aaa", bar: "bbb" };
•如果变量名与属性名不一致,必须明确对应关系
let { baz } = { foo: "aaa", bar: "bbb" };
let { foo: baz} = { foo:'aaa', bar:'bbb'};