一句話理解ES6的解構賦值


前言

前端發(fā)展到今天幕帆,我們對ES6系列的語法糖已經(jīng)有了比較熟悉的了解燕刻。其中解構賦值在取值賦值這一塊給出了極大的便利。


解構賦值的前提

一般解構的是對象和數(shù)組或者是Set集合沫换。

結構賦值也分為:數(shù)組的解構賦值类浪, 對象的解構賦值载城。

首先拋出如何一句話理解解構賦值,然后我們再來進行結構賦值的具體分析费就;


重點來了诉瓦,取值操作的數(shù)據(jù)結構與賦值操作的數(shù)據(jù)結構一致

其本質(zhì)就是 左邊數(shù)據(jù)結構 = 右邊數(shù)據(jù)結構,就可以實現(xiàn)解構賦值力细。


數(shù)組的解構賦值

數(shù)組的解構睬澡,首先要明確解構的數(shù)據(jù)源必須是數(shù)組,同樣的還要確定是否定義了需要賦值的變量眠蚂。這樣才能較為完整的理解清除整個數(shù)組的解構賦值過程煞聪。

輸出的結果為:

很顯然的看出把arr數(shù)據(jù)源中的值都提取出來了。

現(xiàn)在是把數(shù)據(jù)源中數(shù)據(jù)完全取出來逝慧,如果是只取出數(shù)據(jù)源中的部分數(shù)據(jù)昔脯,我們該怎么辦呢?還是一句話:左邊數(shù)據(jù)結構 = 右邊數(shù)據(jù)結構 既可以實現(xiàn)數(shù)據(jù)的部分提取馋艺。


數(shù)據(jù)的解構賦值栅干,是以數(shù)組的索引來與接收變量進行對應的迈套。一個索引對用一個變量捐祠。


我們直接上代碼分析:

從上面代碼不難發(fā)現(xiàn),在 let [year, blessing] = arr 這句話是在執(zhí)行解構賦值桑李。其year對應的是arr[0]中的值踱蛀,blessing對應的是arr[1]中的值。左邊是通過一個 [ ] 來與右邊 arr 數(shù)據(jù)結構進行對應

結合擴展運算符(...)我們可以實現(xiàn)一個變量接收多個索引的值(一個解構賦值中只能使用一次擴展運算符)贵白,它會把其他的數(shù)組索引的值封裝成一個數(shù)組率拒。但本質(zhì)沒有變。那就是解構賦值左右兩邊的數(shù)據(jù)結構沒有變禁荒。

查看blessing的輸出結果為:

從上面的代碼不難發(fā)現(xiàn)猬膨,數(shù)據(jù)結構層次沒有任何變化。


對象的結構賦值

與數(shù)據(jù)的解構賦值同樣的理解呛伴。其?左邊數(shù)據(jù)結構 = 右邊數(shù)據(jù)結構 就可以實現(xiàn)對象的解構賦值勃痴。


對象解構賦值谒所,是以對象中的屬性名與接收變量名來一一進行對應的


直接開始擼上代碼,這樣通透明了沛申。

在上面代碼中劣领, let {year, blessing } = obj 從數(shù)據(jù)解構層次上看, 左邊的數(shù)據(jù)結構與右邊的數(shù)據(jù)解構完全一致铁材,都是對象類型的尖淘。所以結果為:

當然這里又會重新提到擴展運算符(...)對此的實現(xiàn)(一個解構賦值中只能使用一次擴展運算符)。它會把其他屬性的值封裝成一個對象著觉。直接獻上代碼已經(jīng)結果:

輸出結果為:

對于上面來說村生,這些數(shù)據(jù)解構都顯得過于簡單了”穑可以試試復雜的數(shù)據(jù)和對象梆造,是否適應我所說的?左邊數(shù)據(jù)結構 = 右邊數(shù)據(jù)結構 的解構處理。


復雜的數(shù)組與對象對于解構賦值的處理

定義一個復雜的數(shù)組數(shù)據(jù)源葬毫。

對于這個復雜的數(shù)組镇辉,我夢如何去取出其skill里面的eat這個值呢?其實很簡單贴捡,依然遵循等式兩邊的數(shù)據(jù)解構一致忽肛。

這樣我們就可以取到值了。當然有人會奇怪為什么會在表達式的左邊多一個逗號烂斋,那是因為數(shù)組的取值是按照索引來進行的屹逛。

接下來我們定義一個復雜的對象數(shù)據(jù)源

對于這個復雜的對象數(shù)據(jù)源汛骂,我們?nèi)绾稳〕鲈趕kill數(shù)組中對象中的skill的值罕模?

直接獻上解構代碼。不難發(fā)現(xiàn)帘瞭,skill: test 是一個什么鬼淑掌?與上面的數(shù)據(jù)解構怎么不一樣了?其實本質(zhì)還是一樣的蝶念。skill: test是使用的一個對象解構賦值的別名抛腕。方便區(qū)分在一個對象中不同數(shù)據(jù)層級的具有相同屬性名的區(qū)分。但數(shù)據(jù)解構層次的還是沒有任何變化媒殉。

總結:在解構賦值過程中担敌,理解好這句話:取值操作的數(shù)據(jù)結構與賦值操作的數(shù)據(jù)結構一致,再難的解構也能夠?qū)懗鰜怼?/p>

原創(chuàng)文章轉(zhuǎn)載請注明出處:http://www.reibang.com/p/4a8998340d78

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廷蓉,一起剝皮案震驚了整個濱河市全封,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖刹悴,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件给猾,死亡現(xiàn)場離奇詭異,居然都是意外死亡颂跨,警方通過查閱死者的電腦和手機敢伸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恒削,“玉大人池颈,你說我怎么就攤上這事〉龇幔” “怎么了躯砰?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長携丁。 經(jīng)常有香客問我琢歇,道長,這世上最難降的妖魔是什么梦鉴? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任李茫,我火速辦了婚禮,結果婚禮上肥橙,老公的妹妹穿的比我還像新娘魄宏。我一直安慰自己,他們只是感情好存筏,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布宠互。 她就那樣靜靜地躺著,像睡著了一般椭坚。 火紅的嫁衣襯著肌膚如雪予跌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天善茎,我揣著相機與錄音券册,去河邊找鬼。 笑死巾表,一個胖子當著我的面吹牛汁掠,可吹牛的內(nèi)容都是我干的略吨。 我是一名探鬼主播集币,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翠忠!你這毒婦竟也來了鞠苟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎当娱,沒想到半個月后吃既,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡跨细,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年鹦倚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冀惭。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡震叙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出散休,到底是詐尸還是另有隱情媒楼,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布戚丸,位于F島的核電站划址,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏限府。R本人自食惡果不足惜夺颤,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胁勺。 院中可真熱鬧拂共,春花似錦、人聲如沸姻几。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛇捌。三九已至抚恒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間络拌,已是汗流浹背俭驮。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留春贸,地道東北人混萝。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像萍恕,于是被迫代替她去往敵國和親逸嘀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348