ECMAScript6--3.解構(gòu)賦值

1.什么是解構(gòu)賦值
解構(gòu)賦值的語(yǔ)法上就是一個(gè)賦值;
解構(gòu):左邊一種結(jié)構(gòu),右邊一種結(jié)構(gòu),左右一一對(duì)應(yīng)進(jìn)行賦值;

2.解構(gòu)賦值的分類(lèi)

  • 數(shù)組解構(gòu)賦值: 左右結(jié)構(gòu)都是數(shù)組叫做數(shù)組解構(gòu)賦值童漩;

  • 對(duì)象解構(gòu)賦值: 左右都是對(duì)象叫做對(duì)象解構(gòu)賦值;

  • 字符串解構(gòu)賦值: 左邊是字符串右邊是數(shù)組仓蛆,這種叫字符串解構(gòu)賦值睁冬;

  • 布爾值解構(gòu)賦值: 都屬于對(duì)象解構(gòu)賦值的一種;

  • 數(shù)值解構(gòu)賦值: 都屬于對(duì)象解構(gòu)賦值的一種;

  • 函數(shù)參數(shù)解構(gòu)賦值: 數(shù)組解構(gòu)賦值在函數(shù)參數(shù)這塊的一個(gè)應(yīng)用豆拨;

    eg:1.

         {
              let a, b,rest;
              [a,b] = [1,2]; //數(shù)組類(lèi)型解構(gòu)賦值直奋;a賦值為1,b賦值為2
              console.log(a,b);//1,2
            }  
    

    2.

    {
              let a, b, rest;
              [a,b,...rest]=[1,2,3,4,5,6];
              console.log(a,b,rest); //1,2,[3,4,5,6]
            }
    

    3.對(duì)象的解構(gòu)賦值

          {
              let a =b;
              ({a,b}={a:1,b:2})
              console.log(a,b);//1 2
          }
    

    4.

           {
              let a, b, c,rest;
              [a,b,c=3] = [1,2]; 
              console.log(a,b,c);//1,2,3
            } 
            
            {
              let a, b, c,rest;
              [a,b,c] = [1,2]; 
              console.log(a,b,c);//1,2,undefined
            } 
    

如果解構(gòu)賦值沒(méi)有在結(jié)構(gòu)上成功配對(duì)施禾,左邊是[a,b,c] 右邊是[1,2]c就沒(méi)有找到與它配對(duì)的值脚线,這種c就為undefined;只聲明了未賦值弥搞;所以c=3默認(rèn)值就是來(lái)解決這個(gè)問(wèn)題的邮绿;(c=3防止了沒(méi)有配對(duì)成功時(shí)默認(rèn)值為undefined)

什么場(chǎng)景下用數(shù)組解構(gòu)賦值?

1.關(guān)于變量的交換

        {
            let a =1;
            let b =2;
            [a,b]=[b,a];//使用解構(gòu)賦值輕松的實(shí)現(xiàn)了變量交換
            console.log(a,b);//2 1
        }

2.

         {
            function f(){
               return [1,2]; 
            }
            let a, b;
            [a,b] = f();
            console.log(a,b); //1 2
        }

3.當(dāng)返回多個(gè)值的情況下攀例,可以選擇行的去接收某幾個(gè)變量
(忽略某些返回值船逮,只關(guān)心想要的)

       {
            function f(){
                return [1,2,3,4,5]
            }
            let a,b,c;
            [a,,,b] = f();
            console.log(a,b);//1 4
        }

4.不確定這個(gè)函數(shù)返回?cái)?shù)組的長(zhǎng)度是多少, 只關(guān)心第一個(gè)粤铭,其余的返回一個(gè)數(shù)組就可以了挖胃,想用就去遍歷,不想用就放那里

         {
            function f(){
                return [1,2,3,4,5]
            }
            let a,b,c;
            [a,...b] = f();
            //[a,,...b] = f();//1  [3,4,5]
            console.log(a,b);//1 [2,3,4,5]
        }}

對(duì)象解構(gòu)賦值

左側(cè)一定是一個(gè)對(duì)象的格式梆惯,右側(cè)也是對(duì)象的格式酱鸭,是通過(guò)key、value去匹配的

1.

        {
            let o ={p:42,q:true};
            let {p,q} =o;
            console.log(p,q);//42 true
        }

2.默認(rèn)值處理
a的默認(rèn)值是10垛吗,后邊對(duì)它重新賦值是3凹髓,最后輸出結(jié)果是3;
b默認(rèn)值是5怯屉,后邊沒(méi)有對(duì)b重新賦值蔚舀,b就是5;

        {
            let {a=10,b=5}={a=3};
            console.log(a,b);//3 5
        }

3.對(duì)象解構(gòu)賦值重要的使用場(chǎng)景:
(嵌套對(duì)象和數(shù)組的一個(gè)運(yùn)用蚀之;)
前端和服務(wù)端通信使用的格式是json蝗敢;json可以理解是一個(gè)對(duì)象;

        {
            let metaDate={
                title:'abc',
                test:[{
                    title:'test',
                    desc:'description'
                }]
            }
            let {title:esTitle,test:[{title:cnTitle}]} = metaDate;
            console.log(esTitle,cnTitle);//abc test
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末足删,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子锁右,更是在濱河造成了極大的恐慌失受,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咏瑟,死亡現(xiàn)場(chǎng)離奇詭異拂到,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)码泞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)兄旬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事领铐∶跎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵绪撵,是天一觀的道長(zhǎng)瓢姻。 經(jīng)常有香客問(wèn)我,道長(zhǎng)音诈,這世上最難降的妖魔是什么幻碱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮细溅,結(jié)果婚禮上褥傍,老公的妹妹穿的比我還像新娘。我一直安慰自己喇聊,他們只是感情好恍风,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著承疲,像睡著了一般邻耕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上燕鸽,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天兄世,我揣著相機(jī)與錄音,去河邊找鬼啊研。 笑死御滩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的党远。 我是一名探鬼主播削解,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沟娱!你這毒婦竟也來(lái)了氛驮?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤济似,失蹤者是張志新(化名)和其女友劉穎矫废,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體砰蠢,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蓖扑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了台舱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片律杠。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柜去,到底是詐尸還是另有隱情灰嫉,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布诡蜓,位于F島的核電站熬甫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蔓罚。R本人自食惡果不足惜椿肩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望豺谈。 院中可真熱鬧郑象,春花似錦、人聲如沸茬末。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)厌丑。三九已至拍谐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間责掏,已是汗流浹背柜砾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留换衬,地道東北人痰驱。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瞳浦,于是被迫代替她去往敵國(guó)和親担映。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容