- ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
一,数组解构
- 事实上,只要某种数据结构具有 Iterator 接口,都可以采用数组形式的解构赋值。
- 数组解构
let [a,b,b] = [1,2,3];
- 默认值解构
let [a, b = true] = ['珺','test' ];
二,对象的解构赋值
- 对象解构
let obj = {
a: 18,
b: 'test'
}
let {a, b} = obj;
- 注意点
let x;
{x} = {x: 18}
({x} = {x: 18})
=========
let arr = [2,3,4];
let {0: aa, length: ll} = arr;
- 函数参数的解构赋值
function fn(a = 1, b = 2){
console.log(a,b);
}
fn()
fn(3)
fn(3,4)
=======
function ff({a = 1,b = 2} = {}){
console.log(a,b)
}
ff()
ff({})
ff({a: 3, b: 4})
ff({a: 18})
ff({b: 16})
function ff({a,b} = {a: 1, b: 2}){
console.log(a,b)
}
ff()
ff({})
ff({a: 3, b: 4})
ff({a: 18})
ff({b: 16})