本質(zhì)上另萤,數(shù)組的解構(gòu)賦值這種寫法屬于“模式匹配”,只要等號(hào)兩邊的模式相同诅挑,左邊的變量就會(huì)被賦予對(duì)應(yīng)的值四敞。
如果解構(gòu)不成功,變量的值就等于undefined拔妥。
另一種情況是不完全解構(gòu)忿危,即等號(hào)左邊的模式,只匹配一部分的等號(hào)右邊的數(shù)組没龙。這種情況下铺厨,解構(gòu)依然可以成功。
只要某種數(shù)據(jù)結(jié)構(gòu)具有 Iterator 接口硬纤,都可以采用數(shù)組形式的解構(gòu)賦值解滓。
解構(gòu)賦值允許指定默認(rèn)值。
(注意筝家,ES6 內(nèi)部使用嚴(yán)格相等運(yùn)算符(===)洼裤,判斷一個(gè)位置是否有值。所以肛鹏,只有當(dāng)一個(gè)數(shù)組成員嚴(yán)格等于undefined逸邦,默認(rèn)值才會(huì)生效恩沛。如果一個(gè)數(shù)組成員是null,默認(rèn)值就不會(huì)生效缕减,因?yàn)閚ull不嚴(yán)格等于undefined雷客。)
對(duì)象的解構(gòu)與數(shù)組有一個(gè)重要的不同。數(shù)組的元素是按次序排列的桥狡,變量的取值由它的位置決定搅裙;而對(duì)象的屬性沒有次序,變量必須與屬性同名裹芝,才能取到正確的值部逮。
不能使用圓括號(hào)的情況:
(1)變量聲明語句
(2)函數(shù)參數(shù)
函數(shù)參數(shù)也屬于變量聲明,因此不能帶有圓括號(hào)嫂易。