<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • ES6的解構賦值的用途總結

          2019-11-5    seo達人

          二 - ES6的解構賦值的用途總結

          2 - 什么是ES6解構

          在ES6中添加了一個新屬性:解構,允許你使用類似數組或對象字面量的語法將數組和對象的屬性賦給各種變量。解構是一種打破數據結構,將其拆分為更小部分的過程,允許我們將右邊的表達式看起來也像變量聲明一般,然后在左邊將值一一提取。 解構這種賦值語法較為簡潔,比傳統的屬性訪問更為清晰。

          還不了解什么是解構賦值的,請參考:https://blog.csdn.net/azxqwe123/article/details/103296603

          下面只講怎么應用:



          2.1 - ES6解構賦值7種場景案例—用途

          (1)交換變量的值



          [x, y] = [y, x];

          上面代碼交換變量x和y的值,這樣的寫法不僅簡潔,而且易讀,語義非常清晰。



          (2)從函數返回多個值



          函數只能返回一個值,如果要返回多個值,只能將它們放在數組或對象里返回。有了解構賦值,取出這些值就非常方便。



          // 返回一個數組



          function example() {

            return [1, 2, 3];

          }

          var [a, b, c] = example();



          // 返回一個對象



          function example() {

            return {

              foo: 1,

              bar: 2

            };

          }

          var { foo, bar } = example();



          (3)函數參數的定義



          解構賦值可以方便地將一組參數與變量名對應起來。



          // 參數是一組有次序的值

          function f([x, y, z]) { ... }

          f([1, 2, 3]);



          // 參數是一組無次序的值

          function f({x, y, z}) { ... }

          f({z: 3, y: 2, x: 1});



          (4)提取JSON數據



          解構賦值對提取JSON對象中的數據,尤其有用。



          var jsonData = {

            id: 42,

            status: "OK",

            data: [867, 5309]

          };



          let { id, status, data: number } = jsonData;



          console.log(id, status, number);

          // 42, "OK", [867, 5309]

          上面代碼可以快速提取JSON數據的值。



          (5)函數參數的默認值



          jQuery.ajax = function (url, {

            async = true,

            beforeSend = function () {},

            cache = true,

            complete = function () {},

            crossDomain = false,

            global = true,

            // ... more config

          }) {

            // ... do stuff

          };





          指定參數的默認值,就避免了在函數體內部再寫var foo = config.foo || ‘default foo’;這樣的語句。



          (6)遍歷Map結構



          任何部署了Iterator接口的對象,都可以用for…of循環遍歷。Map結構原生支持Iterator接口,配合變量的解構賦值,獲取鍵名和鍵值就非常方便。



          var map = new Map();

          map.set('first', 'hello');

          map.set('second', 'world');



          for (let [key, value] of map) {

            console.log(key + " is " + value);

          }

          // first is hello

          // second is world

          如果只想獲取鍵名,或者只想獲取鍵值,可以寫成下面這樣。



          // 獲取鍵名

          for (let [key] of map) {

            // ...

          }



          // 獲取鍵值

          for (let [,value] of map) {

            // ...

          }



          (7)輸入模塊的指定方法



          加載模塊時,往往需要指定輸入那些方法。解構賦值使得輸入語句非常清晰。



          const { SourceMapConsumer, SourceNode } = require("source-map");


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          色99久久久久高潮综合影院 | 久久精品国产亚洲网站| 亚洲综合伊人久久大杳蕉| 久久精品国产亚洲AV嫖农村妇女 | 伊人久久免费视频| 国内精品伊人久久久影院| 久久精品人成免费| 亚洲Av无码国产情品久久| 99精品久久久久中文字幕| 久久久久无码中| 嫩草影院久久国产精品| 亚洲伊人久久大香线蕉综合图片| av国内精品久久久久影院| 国内精品久久久人妻中文字幕| 久久笫一福利免费导航| 国产精品久久久久影视不卡| 久久综合久久美利坚合众国| 无码人妻精品一区二区三区久久| 久久综合中文字幕| 久久国产免费直播| 亚洲精品97久久中文字幕无码| 久久国产精品久久| 久久久久亚洲Av无码专| 欧美亚洲国产精品久久| 久久国产三级无码一区二区| 久久综合久久综合九色| 精品蜜臀久久久久99网站| 国产偷久久久精品专区| 国内精品九九久久精品| 久久精品视频一| 久久99国产精品久久99小说| 久久伊人中文无码| 无码国内精品久久人妻麻豆按摩| 成人午夜精品久久久久久久小说 | 国内精品久久久久久不卡影院| 成人久久久观看免费毛片| 久久99精品综合国产首页| 精品久久久久久国产91| 久久免费小视频| AAA级久久久精品无码区| 国产精品亚洲美女久久久|