• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    解析JavaScript的ES6版本中的解構賦值_基礎知識

    來源:懂視網 責編:小采 時間:2020-11-27 21:41:07
    文檔

    解析JavaScript的ES6版本中的解構賦值_基礎知識

    解析JavaScript的ES6版本中的解構賦值_基礎知識:什么是解構賦值? 解構賦值允許你使用類似數組或對象字面量的語法將數組和對象的屬性值賦給一系列變量。這個語法非常簡潔,而且比傳統的屬性訪問更加清晰。 在不使用解構賦值的情況下,訪問數組的前三項: var first = someArray[0]; var sec
    推薦度:
    導讀解析JavaScript的ES6版本中的解構賦值_基礎知識:什么是解構賦值? 解構賦值允許你使用類似數組或對象字面量的語法將數組和對象的屬性值賦給一系列變量。這個語法非常簡潔,而且比傳統的屬性訪問更加清晰。 在不使用解構賦值的情況下,訪問數組的前三項: var first = someArray[0]; var sec

    什么是解構賦值?

    解構賦值允許你使用類似數組或對象字面量的語法將數組和對象的屬性值賦給一系列變量。這個語法非常簡潔,而且比傳統的屬性訪問更加清晰。

    在不使用解構賦值的情況下,訪問數組的前三項:

    使用解構賦值后,相應的代碼變得更簡潔和可讀:

    SpiderMonkey(Firefox 的 JavaScript 引擎)已經支持解構賦值的大部分特性,但還不完全。
    數組和可迭代對象的解構賦值

    上面我們已經看到了數組解構賦值的例子,該語法的一般形式是:

    這將把數組中對應的項依次賦給 variable1 到 variableN,如果同時需要聲明變量,可以在解構表達式前面添加 var,let 或 const 關鍵字。

    事實上,你還可以嵌套任意的深度:

    此外,還可以跳過數組中的某些項:

    你還可以用一個 Rest 表達式來捕獲數組中的剩余項:

    如果數組越界或訪問數組中不存在的項,將得到和通過數組索引訪問一樣的值:undefined。

    注意,數組解構賦值的方式也同樣適用于可遍歷的對象:

    對象的解構賦值

    對象的解構賦值允許你將變量綁定到對象不同的屬性值。指定被綁定的屬性名,后面緊跟要綁定的變量:

    當綁定的屬性名和接收屬性值的變量名一樣時,還有一個語法糖:

    與數組一樣,也可以嵌套:

    解構一個不存在的屬性時,將得到 undefined:

    使用對象的解構賦值時還有一個潛在的陷阱,在解構賦值時沒有聲明變量(沒有 var、let或 const 關鍵字):

    這是因為 JavaScript 語法告訴引擎任何以 { 開始的語句都是語句塊(例如,{console} 就是一個合法的語句塊),解決方法是將整個語句用一對括號包裹:

    其他情況

    當你嘗試解構 null 或 undefined,你將得到類型錯誤:

    不過,你可以對其他基本類型(Boolean、String 和 Number)進行解構,將得到 undefined:

    結果也許會讓你感到意外,但深究一下,其實原因很簡單。在進行對象解構賦值時,被解構的對象將被強制轉換為 Object,除 null 和 undefined 外,其它類型都可以被強制轉換為對象。進行數組的結構賦值時,要求被解構的對象有一個遍歷器。
    默認值

    可以為不存在的屬性指定一個默認值:

    實際應用
    函數參數

    作為開發人員,我們經常把一個包含多個屬性的對象作為函數的參數,來實現更靈活的 API,而不是讓 API 的使用者記住一些特定順序的參數。我們可以使用對象的解構賦值,來避免每次使用參數時的屬性訪問:

    配置對象

    完善上面的例子,我們可以為要被解構的對象屬性提供默認值,這在對那些作為配置參數的對象非常實用,因為許多配置項都有一個合理的默認值。例如,jQuery 的 ajax 方法的第二個參數為一個配置對象,我們可以這樣實現:

    這避免了類似這樣的重復代碼:var foo = config.foo || theDefaultFoo;。
    與迭代器一起使用

    當遍歷 Map 對象時,我們可以使用解構賦值來遍歷 [key, value]:

    只遍歷鍵:

    返回多個值

    返回一個數組,通過解構賦值提取到返回值:

    或者,返回一個鍵值對的對象:

    這兩者都比使用中間變量好:

    采用延續式:

    導入 CommonJS 模塊的指定部分

    還沒使用過 ES6 的模塊吧,那至少使用過 CommonJS 吧。當導入一個 CommonJS 模塊 X 時,模塊提供的方法也許多余你實際使用的。使用解構賦值,你可以明確指定你需要使用模塊的哪些部分:

    如果你使用 ES6 的模塊機制,你可以看到 import 聲明時有一個類似的語法。
    結論

    我們看到,解構賦值在很多場景下都很實用。在 Mozilla,我們已經有很多經驗。Lars Hansen 在 10 年前就向 Opera 引入了解構賦值,Brendan Eich 在稍微晚點也給 Firefox 添加了支持,最早出現在 Firefox 2 中。因此,解構賦值已經滲透到我們每天對 JS 的使用中,悄悄地使我們的代碼更簡短、整潔。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    解析JavaScript的ES6版本中的解構賦值_基礎知識

    解析JavaScript的ES6版本中的解構賦值_基礎知識:什么是解構賦值? 解構賦值允許你使用類似數組或對象字面量的語法將數組和對象的屬性值賦給一系列變量。這個語法非常簡潔,而且比傳統的屬性訪問更加清晰。 在不使用解構賦值的情況下,訪問數組的前三項: var first = someArray[0]; var sec
    推薦度:
    標簽: js 解析 javascript
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲日韩国产精品乱| 亚州日韩精品专区久久久| 99久久精品无码一区二区毛片| 午夜精品一区二区三区在线观看| 国内精品久久久久影院免费| 亚洲精品自产拍在线观看| 国产精品免费大片一区二区| 九九精品99久久久香蕉| 久久久久这里只有精品| 国产成人精品高清不卡在线 | 92精品国产自产在线观看| 日韩精品久久久肉伦网站| 久久中文精品无码中文字幕| 99久久人人爽亚洲精品美女| 国产精品久久久久…| 熟女精品视频一区二区三区| 亚洲av无码成人精品国产| 久久99国产精品成人欧美| 日韩一级精品视频在线观看| 99国产欧美久久久精品蜜芽| 老司机午夜精品视频资源| 亚洲A∨午夜成人片精品网站| 国产精品成人一区二区| 91po国产在线精品免费观看| 精品一区二区久久久久久久网站| 国产2021精品视频免费播放 | 亚洲精品成人片在线观看| 精品欧美一区二区在线看片| 99riav国产精品| 柠檬福利精品视频导航| 国产精品内射后入合集| 久久夜色精品国产噜噜亚洲AV| 亚洲无码精品浪潮| 亚洲精品无码日韩国产不卡?V| 欧美XXXX黑人又粗又长精品| 久久精品国产亚洲一区二区三区| 国产乱子伦精品免费视频 | 国产三级国产精品国产普男人 | 精品乱码久久久久久夜夜嗨| 国产一区二区三区精品视频| 国产高清在线精品一区二区|