數(shù)組和對(duì)象的解構(gòu)賦值是ES6中新增的一種語(yǔ)法,可以快速、方便地從數(shù)組或?qū)ο笾刑崛〕鲂枰脑兀缓筚x值給變量。
數(shù)組解構(gòu)賦值
數(shù)組解構(gòu)賦值的語(yǔ)法格式為:
let [變量1, 變量2, ..., 變量n] = 數(shù)組;
其中,方括號(hào)表示數(shù)組,等號(hào)左邊的方括號(hào)表示解構(gòu)賦值的語(yǔ)法,等號(hào)右邊的數(shù)組是要被解構(gòu)的數(shù)組,變量1到變量n是要接收數(shù)組中的元素的變量名。
舉個(gè)例子:
let arr = [1, 2, 3];
let [a, b, c] = arr;
console.log(a); // 輸出1
console.log(b); // 輸出2
console.log(c); // 輸出3
對(duì)象解構(gòu)賦值
對(duì)象解構(gòu)賦值的語(yǔ)法格式為:
let {屬性1: 變量1, 屬性2: 變量2, ..., 屬性n: 變量n} = 對(duì)象;
其中,花括號(hào)表示對(duì)象,等號(hào)左邊的花括號(hào)表示解構(gòu)賦值的語(yǔ)法,等號(hào)右邊的對(duì)象是要被解構(gòu)的對(duì)象,屬性1到屬性n是要接收對(duì)象中的屬性名,變量1到變量n是要接收對(duì)象中屬性的值的變量名。
舉個(gè)例子:
let obj = {a: 1, b: 2, c: 3};
let {a, b, c} = obj;
console.log(a); // 輸出1
console.log(b); // 輸出2
console.log(c); // 輸出3
解構(gòu)賦值還可以設(shè)置默認(rèn)值,當(dāng)要解構(gòu)的對(duì)象或數(shù)組中沒(méi)有該屬性或元素時(shí),就會(huì)使用默認(rèn)值。
舉個(gè)例子:
let obj = {a: 1, b: 2};
let {a = 0, b = 0, c = 0} = obj;
console.log(a); // 輸出1
console.log(b); // 輸出2
console.log(c); // 輸出0
在解構(gòu)賦值中,可以通過(guò)使用...運(yùn)算符來(lái)獲取數(shù)組或?qū)ο笾惺S嗟脑兀梢粋€(gè)新的數(shù)組或?qū)ο蟆?/p>
舉個(gè)例子:let arr = [1, 2, 3, 4];
let [a, b, ...rest] = arr;
console.log(a); // 輸出1
console.log(b); // 輸出2
console.log(rest); // 輸出[3, 4]
let obj = {a: 1, b: 2, c: 3, d: 4};
let {a, b, ...rest} = obj;
console.log(a); // 輸出1
console.log(b); // 輸出2
console.log(rest); // 輸出{c: 3, d: 4}