在es6中,解構(gòu)賦值是針對(duì)數(shù)組或者對(duì)象進(jìn)行模式匹配,然后對(duì)其中的變量進(jìn)行賦值的意思;解構(gòu)賦值也是對(duì)賦值運(yùn)算符的擴(kuò)展,語法為“l(fā)et 解構(gòu)的目標(biāo) = 解構(gòu)的源;”。
本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。
es6解構(gòu)賦值是什么意思
概述
解構(gòu)賦值是對(duì)賦值運(yùn)算符的擴(kuò)展。
他是一種針對(duì)數(shù)組或者對(duì)象進(jìn)行模式匹配,然后對(duì)其中的變量進(jìn)行賦值。
在代碼書寫上簡潔且易讀,語義更加清晰明了;也方便了復(fù)雜對(duì)象中數(shù)據(jù)字段獲取。
解構(gòu)模型
在解構(gòu)中,有下面兩部分參與:
-
解構(gòu)的源,解構(gòu)賦值表達(dá)式的右邊部分。
-
解構(gòu)的目標(biāo),解構(gòu)賦值表達(dá)式的左邊部分。
數(shù)組模型的解構(gòu)(Array)
基本
let [a, b, c] = [1, 2, 3]; // a = 1 // b = 2 // c = 3
可嵌套
let [a, [[b], c]] = [1, [[2], 3]]; // a = 1 // b = 2 // c = 3
可忽略
let [a, , b] = [1, 2, 3]; // a = 1 // b = 3
不完全解構(gòu)
let [a = 1, b] = []; // a = 1, b = undefined
剩余運(yùn)算符
let [a, ...b] = [1, 2, 3]; //a = 1 //b = [2, 3]
示例如下:
注意點(diǎn):
-
賦值等號(hào)的左右側(cè)的數(shù)組結(jié)構(gòu)需要一直,這個(gè)叫做”模式匹配”
-
如果左右兩側(cè)的變量數(shù)與數(shù)值數(shù)的數(shù)量不匹配, 那么就直接跳過缺失部分(謹(jǐn)記, 左邊的跳過了, 右側(cè)相應(yīng)位置的也要跳過)
-
如果左側(cè)某個(gè)變量前有三個(gè)小點(diǎn), 那么意味著右側(cè)對(duì)應(yīng)位置及以后的所有數(shù)值將組合成一個(gè)數(shù)組,賦值給左側(cè)的該變量,且左側(cè)必須是最后一個(gè)變量才可以在前面加三個(gè)小點(diǎn),否則報(bào)錯(cuò)
【