什么是解構(gòu)?
正統(tǒng)解釋?zhuān)喊凑找欢J骄ィ瑥臄?shù)組和對(duì)象中提取值弧圆,然后對(duì)變量進(jìn)行賦值。
直白理解:模式匹配笔咽,映射關(guān)系搔预,只要等式放的兩邊模式一樣,一一對(duì)應(yīng)叶组,左邊的變量就會(huì)被賦予對(duì)應(yīng)的值拯田。
數(shù)組解構(gòu)
變量聲明并賦值時(shí)的解構(gòu)
變量先聲明后賦值時(shí)解構(gòu)
默認(rèn)值
為了防止從數(shù)組中取出一個(gè)值為undefined 的對(duì)象,可以為這個(gè)數(shù)組設(shè)置一個(gè)默認(rèn)值甩十。
交換變量
在沒(méi)有解構(gòu)賦值的情況下勿锅,交換兩個(gè)變量需要一個(gè)臨時(shí)變量。
解析一個(gè)從函數(shù)中返回的數(shù)組
忽略某些返回值
將剩余數(shù)組賦值給一個(gè)變量
當(dāng)解構(gòu)一個(gè)數(shù)組是枣氧,可以使用剩余模式溢十,將數(shù)組剩余部分賦值給一個(gè)變量。
注意:剩余元素必須是數(shù)組的最后一個(gè)元素达吞,否則會(huì)拋出 SyntaxError 錯(cuò)誤张弛。
用正則表達(dá)式匹配提取值
用正則表達(dá)式方法exec() 匹配字符串會(huì)返回一個(gè)數(shù)組,該數(shù)組第一個(gè)值是完全匹配正則表達(dá)式的字符串酪劫,然后的值是匹配正則表達(dá)式括號(hào)內(nèi)內(nèi)容部分吞鸭。結(jié)構(gòu)賦值允許你輕易的提取出需要的部分,忽略完全匹配的字符串覆糟。
對(duì)象解構(gòu)
基本賦值
無(wú)聲明賦值
注意:賦值語(yǔ)句周?chē)睦ㄌ?hào)刻剥,是使用對(duì)象字面解構(gòu)賦值時(shí)不需要聲明的語(yǔ)法。{a,b} = {a:2, b:3} 不是有效的獨(dú)立語(yǔ)法滩字,因?yàn)樽筮叺?{a, b} 被認(rèn)為是一個(gè)塊而不是對(duì)象字面量造虏。然而,({a,b} = {a:2, b:3}) 是有效的麦箍,正如 var?{a,b} = {a:2, b:3}漓藕。需要注意的是:這里的括號(hào)表達(dá)式需要一個(gè)分號(hào)在它前面,否則它會(huì)被當(dāng)成一行中的函數(shù)執(zhí)行挟裂。
給新的變量名賦值
默認(rèn)值
給新的變量名并提供默認(rèn)值
函數(shù)參數(shù)解構(gòu)
如上代碼享钞,解構(gòu)的左邊被分配給右手邊的空對(duì)象字面值,也可以在沒(méi)有右側(cè)分配的編寫(xiě)情況下編寫(xiě)函數(shù)诀蓉。但是栗竖,這樣在函數(shù)調(diào)用時(shí)暑脆,至少要提供一個(gè)參數(shù),而在ES中狐肢,你可以直接調(diào)用函數(shù)添吗,不用提供任何參數(shù)。
解構(gòu)嵌套對(duì)象和數(shù)組
for of 迭代和解構(gòu)
從作為實(shí)參的函數(shù)參數(shù)的對(duì)象中提取數(shù)據(jù)