- 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})
複製程式碼