精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

盤點JavaScript中解構賦值,數組解構常用的數組操作

開發 前端
本文基于JavaScript基礎,介紹了解構賦值,數組解構,介紹了常見的數組操作,對象結構。在實際應用中需要注意的點,遇到的難點,提供了詳細的解決方法。

[[412917]]

大家好,我是進階學習者。

前言

解構賦值:是一種特殊的語法,它使可以將數組或對象“拆包”為到一系列變量中,因為有時候使用變量更加方便。解構操作對那些具有很多參數和默認值等的函數也很奏效。

一、數組解構

下面是一個將數組解構到變量中的。

例:

  1. <script> 
  2.             // 有一個存放了名字和姓氏的數組 
  3.             let arr = ["Ilya""Kantor"
  4.             // 解構賦值 
  5.             // sets firstName = arr[0] 
  6.             // and surname = arr[1] 
  7.             let [firstName, surname] = arr; 
  8.             alert(firstName); // Ilya 
  9.             alert(surname); // Kantor 
  10. </script> 

現在就可以針對這些變量進行操作,而不是針對原來的數組元素。

當與 split 函數(或其他返回值是數組的函數)結合使用時,看起來就更優雅了:

  1. let [firstName, surname] = "Ilya Kantor".split(' '); 

1. “解構”并不意味著“破壞”

這種語法叫做“解構賦值”,因為它通過將結構中的各元素復制到變量中來達到“解構”的目的。但數組本身是沒有被修改的。

2. 剩余的 ‘…’

如果不只是要獲得第一個值,還要將后續的所有元素都收集起來 — 可以使用三個點 "..." 來再加一個參數來接收“剩余的”元素:

  1. let [name1, name2, ...rest] = ["Julius""Caesar""Consul""of the Roman Republic"]; 
  2. alert(name1); // Julius 
  3. alert(name2); // Caesar 
  4. // 請注意,`rest` 的類型是數組 
  5. alert(rest[0]); // Consul 
  6. alert(rest[1]); // of the Roman Republic 
  7. alert(rest.length); // 2 

 

rest 的值就是數組中剩下的元素組成的數組。不一定要使用變量名 rest,也可以使用其他的變量名,只要確保它前面有三個點,并且在解構賦值的最后一個參數位置上就行了。

3. 默認值

如果賦值語句中,變量的數量多于數組中實際元素的數量,賦值不會報錯。未賦值的變量被認為是 undefined。

  1. let [firstName, surname] = []; 
  2.  
  3. alert(firstName); // undefined 
  4. alert(surname); // undefined 

如果想要一個“默認”值給未賦值的變量,可以使用 = 來提供:

  1. // 默認值 
  2. let [name = "Guest", surname = "Anonymous"] = ["Julius"]; 
  3. alert(name);    // Julius(來自數組的值) 
  4. alert(surname); // Anonymous(默認值被使用了) 

默認值可以是更加復雜的表達式甚至可以是函數調用,這些表達式或函數只會在這個變量未被賦值的時候才會被計算。

使用了 prompt 函數來提供兩個默認值,但它只會在未被賦值的那個變量上進行調用:

  1. // 只會提示輸入姓氏 
  2. let [name = prompt('name?'), surname = prompt('surname?')] = ["Julius"]; 
  3. alert(name);    // Julius(來自數組) 
  4. alert(surname); // 輸入的值 

二、對象解構

解構賦值同樣適用于對象。

基本語法:

  1. let {var1, var2} = {var1:…, var2:…} 

在等號右側有一個已經存在的對象,想把它拆開到變量中。等號左側包含了對象相應屬性的一個“(pattern)模式”。

在簡單的情況下,等號左側的就是 {...} 中的變量名列表。

例 :

  1. let options = {   
  2.   title: "Menu",  width: 100,  height: 200 
  3. }; 
  4. let {title, width, height} = options; 
  5. alert(title);  // Menualert(width);  // 100 
  6. alert(height); // 200 
圖片

屬性 options.title、options.width 和 options.height 值被賦給了對應的變量。變量的順序并不重要,下面這個代碼也奏效:

  1. // 改變 let {...} 中元素的順序 
  2. let {height, width, title} = { title: "Menu", height: 200, width: 100 } 

就像數組或函數參數一樣,默認值可以是任意表達式甚至可以是函數調用。它們只會在未提供對應的值時才會被計算/調用。

1. 剩余模式(pattern)

如果對象擁有的屬性數量比提供的變量數量還多,該怎么辦?

可以只取其中的某一些屬性,然后把“剩余的”賦值到其他地方嗎?

可以使用剩余模式(pattern),就像對數組那樣。一些較舊的瀏覽器不支持此功能(例如,使用 Babel 對其進行填充),但可以在現代瀏覽器中使用。

例:

  1. let options = { 
  2.   title: "Menu"
  3.   height: 200, 
  4.   width: 100 
  5. }; 
  6. // title = 名為 title 的屬性 
  7. // rest = 存有剩余屬性的對象 
  8. let {title, ...rest} = options; 
  9. // 現在 title="Menu", rest={height: 200, width: 100} 
  10. alert(rest.height);  // 200 
  11. alert(rest.width);   // 100 
圖片

注:

變量都是在賦值中通過正確方式聲明的:let {…} = {…}。當然,也可以使用已有的變量,而不用 let,但這里有一個陷阱。

三、智能函數參數

案例

解構賦值語法:可以把所有參數當作一個對象來傳遞,然后函數馬上把這個對象解構成多個變量:

  1. // 傳遞一個對象給函數 
  2. let options = { 
  3.   title: "My menu"
  4.   items: ["Item1""Item2"
  5. }; 
  6. // ……然后函數馬上把對象展開成變量 
  7. function showMenu({title = "Untitled", width = 200, height = 100, items = []}) { 
  8.   // title, items – 提取于 options, 
  9.   // width, height – 使用默認值 
  10.   alert( `${title} ${width} ${height}` ); // My Menu 200 100 
  11.   alert( items ); // Item1, Item2 
  12. showMenu(options); 

同樣可以使用帶有嵌套對象和冒號映射的更加復雜的解構:

  1. let options = { 
  2.   title: "My menu"
  3.   items: ["Item1""Item2"
  4. }; 
  5. function showMenu({ 
  6.   title = "Untitled"
  7.   width: w = 100,  // width goes to w 
  8.   height: h = 200, // height goes to h 
  9.   items: [item1, item2] // items first element goes to item1, second to item2 
  10. }) { 
  11.   alert( `${title} ${w} ${h}` ); // My Menu 100 200 
  12.   alert( item1 ); // Item1 
  13.   alert( item2 ); // Item2 
  14. showMenu(options); 

完整語法和解構賦值是一樣的:

  1. function({ 
  2.   incomingProperty: varName = defaultValue 
  3.  
  4. }) 

注:

對于參數對象,屬性 incomingProperty 對應的變量是 varName,默認值是 defaultValue。

這種解構假定了 showMenu() 函數確實存在參數。如果想讓所有的參數都使用默認值,那應該傳遞一個空對象:

  1. showMenu({}); // 不錯,所有值都取默認值showMenu(); // 這樣會導致錯誤 

可以通過指定空對象 {} 為整個參數對象的默認值來解決這個問題:

  1. function showMenu({ title = "Menu", width = 100, height = 200 } = {}) { 
  2.   alert( `${title} ${width} ${height}` ); 
  3. showMenu(); // Menu 100 200 

運行結果:

整個參數對象的默認是 {},因此總會有內容可以用來解構。

四、總結

本文基于JavaScript基礎,介紹了解構賦值,數組解構,介紹了常見的數組操作,對象結構。在實際應用中需要注意的點,遇到的難點,提供了詳細的解決方法。

使用JavaScript語言,能夠讓讀者更好的理解。代碼很簡單,希望能夠幫助讀者更好的學習。

 

責任編輯:姜華 來源: 前端進階學習交流
相關推薦

2024-07-17 11:35:31

JavaScript解構賦值

2024-09-10 15:34:18

JavaScript解構賦值

2024-06-18 10:28:46

2021-04-01 17:04:34

Javascript語法數組

2024-09-27 08:35:33

數組JavaScript性能

2019-12-03 19:09:19

JavaScriptNumbers阿里云計算

2024-11-01 11:15:48

2025-04-09 08:25:00

JavaScript數組解構賦值

2021-06-15 10:01:27

JavaScript數組遍歷Entries

2021-06-18 10:05:14

JavaScript數組遍歷

2020-07-14 13:16:32

JavaScript解構對象

2021-07-27 06:49:11

C#存儲檢索

2022-09-02 07:39:15

存算存儲私有云

2024-11-08 13:34:24

2021-10-09 07:10:31

JavaScript對象Python

2023-05-17 09:31:38

華為分銷華為伙伴體系

2015-10-26 10:01:33

解構C#小數運算

2025-05-20 08:25:00

解構賦值代碼

2016-10-13 19:33:10

javascript數組indexOf
點贊
收藏

51CTO技術棧公眾號

久久在线免费视频| 免费高清在线观看| 2021天堂中文幕一二区在线观| 亚洲在线观看| 亚洲激情欧美激情| 国产精品国内视频| 黑丝av在线播放| 性做久久久久久久久久| 成人在线免费观看91| 天天综合色天天| 2014亚洲精品| 国产黄在线免费观看| 欧美91在线|欧美| 国产欧美日韩精品a在线观看| 91精品国产91久久久久久| 色婷婷狠狠18禁久久| 男人的天堂在线视频免费观看 | 久久久久国色av免费观看性色| 亚洲黄色a v| 成人亚洲性情网站www在线观看| 国产亚洲毛片在线| 亚洲精品电影在线| 国产91在线免费| 亚洲 欧美 激情 小说 另类| 99综合视频| 亚洲精品电影久久久| 日韩va在线观看| aaa大片在线观看| 国产不卡免费视频| 亚州精品天堂中文字幕| 精品人妻一区二区免费视频| 91视频成人| 亚洲精品久久7777| 性欧美大战久久久久久久免费观看| 欧美一级黄视频| 热久久天天拍国产| 精品亚洲一区二区三区在线播放 | 在线日韩视频| 精品久久人人做人人爽| www插插插无码免费视频网站| 国产黄色一区二区| 宅男噜噜噜66一区二区| 久久亚洲精品网站| 性生交大片免费全黄| 一区二区三区四区高清视频| 亚洲成a人片在线不卡一二三区| 国产日韩欧美一区二区| 日本视频免费观看| 91精品久久久久久久久久不卡| 日韩精品一区二区三区四区视频| www.浪潮av.com| 黄色在线观看www| 国产欧美一区二区三区网站 | 欧美专区第一页| x88av在线| 精品久久久久久久久久岛国gif| 亚洲成av人片一区二区| 国产内射老熟女aaaa| 头脑特工队2免费完整版在线观看| 可以免费看不卡的av网站| 久久精品人人做人人爽| 男男做爰猛烈叫床爽爽小说 | 日韩在线一二三区| 久久久国产一区| 黄色精品视频在线观看| 天天做天天爱综合| 日韩高清人体午夜| 国产精品久久久久久9999| 蜜桃视频m3u8在线观看| 17c精品麻豆一区二区免费| 国产综合18久久久久久| 天堂资源中文在线| 久久久五月婷婷| 成人情视频高清免费观看电影| 小泽玛利亚一区二区三区视频| 三级精品在线观看| 成人福利网站在线观看| 日韩视频在线观看一区| 欧美福利影院| 色偷偷91综合久久噜噜| 日本三级日本三级日本三级极| 欧美激情福利| 日韩欧美在线综合网| 国产精品igao| 伊人久久精品| 欧美精品一区二区久久久| 亚洲色图 在线视频| 欧美xxxhd| 欧美日韩一区三区| 不卡av免费在线| 国产精品一区免费在线| 欧美日韩成人综合| 国产第一页视频| 蜜桃视频m3u8在线观看| 欧美日韩一级片在线观看| 日本xxxx免费| 精品久久不卡| 亚洲片国产一区一级在线观看| 日批在线观看视频| 成人免费电影网址| 久久久久久久成人| 亚洲怡红院av| 久久91精品久久久久久秒播| 国产精品男人的天堂| 99精品人妻国产毛片| 亚洲欧美久久久| 亚洲自拍偷拍区| 超碰在线播放97| 国产成人精品亚洲日本在线桃色 | 试看120秒一区二区三区| 欧美视频在线播放| 777视频在线| 国产成人精品一区二区三区在线| 在线视频一区二区三| 亚洲国产精品毛片av不卡在线| 成人教育av| 在线日韩av片| 亚洲一区二区在线免费| 久久精品国内一区二区三区水蜜桃| 午夜欧美大片免费观看| 一区二区www| 国产剧情一区二区三区| 97超碰资源| 五月婷婷在线视频| 成人免费在线播放视频| 国产亚洲天堂网| 成人av集中营| 亚洲欧美综合另类中字| 日韩精品一区二区av| 亚洲欧美日本日韩| 国产精品传媒毛片三区| 4438x成人网全国最大| 精品视频全国免费看| 日本一级免费视频| 亚洲一区欧美| 久久久久久久亚洲精品| 国产女人18毛片水真多| 成人小视频在线| 欧美日韩亚洲免费| 老司机精品影院| 亚洲动漫第一页| 日韩中文字幕免费在线| 美女呻吟一区| 这里只有精品在线观看| 欧美成人精品一区二区免费看片| 亚洲激情自拍| 国产99视频精品免费视频36| 亚洲图区一区| 色屁屁一区二区| 奇米777在线| 亚洲男人都懂第一日本| 久久视频在线看| 91麻豆国产视频| 自拍偷拍亚洲激情| 一级黄色免费毛片| 欧美日韩18| 国产精品羞羞答答| 日本人妻丰满熟妇久久久久久| 久久九九影视网| 久久久久久久片| 日韩成人影院| 91精品国产成人www| 无码h黄肉3d动漫在线观看| 五月天视频一区| 国产一二三四五区| 美女视频黄免费的久久 | 2019亚洲日韩新视频| 伊人网中文字幕| av一区二区不卡| 中文字幕欧美日韩一区二区| 国产在线美女| 亚洲欧美日韩国产中文| 精品在线免费观看视频| 久久99深爱久久99精品| 亚洲第一精品区| 日本在线精品| 日韩精品久久久久久福利| 台湾佬中文在线| 中文字幕在线一区| chinese少妇国语对白| 日韩在线高清| 国产日韩欧美一区二区| 欧美日韩亚洲国产| 欧美激情精品久久久久| 国产精品色综合| 亚洲国产成人一区二区三区| 国产免费成人在线| 偷拍欧美精品| 精品日本一区二区三区在线观看| 亚洲婷婷噜噜| 亚洲图片欧洲图片av| 青青草av在线播放| 成人黄色在线视频| 日韩国产成人无码av毛片| 亚洲v天堂v手机在线| 成人妇女免费播放久久久| 电影在线观看一区| 日韩一区二区福利| 国产精品久久欧美久久一区| 亚洲第一主播视频| 娇小11一12╳yⅹ╳毛片| 日本va欧美va精品| 热re99久久精品国产99热| 牛牛精品一区二区| 久久中文字幕在线| 国产私人尤物无码不卡| 欧美最新大片在线看| 国产一级特黄毛片| 99久久国产综合精品女不卡| 成人一区二区免费视频| 久久夜色电影| 成人性生交大片免费看视频直播| 蜜桃视频m3u8在线观看| 久久99精品久久久久久青青91 | 中文字幕在线视频网站| 日韩成人在线播放| 精品人妻午夜一区二区三区四区| 欧美亚男人的天堂| 亚洲图片在线视频| 调教+趴+乳夹+国产+精品| 麻豆精品一区二区三区视频| 欧美国产激情二区三区 | 午夜精品小视频| 欧美日韩国产大片| 国产主播第一页| 国产精品伦一区二区三级视频| 亚洲一级片网站| 午夜亚洲性色视频| 免费一级特黄毛片| 国自产拍偷拍福利精品免费一 | 91免费视频污| 久久国产尿小便嘘嘘| 无码毛片aaa在线| 高清一区二区三区| 日韩男女性生活视频| 日韩精品毛片| 在线午夜精品自拍| 波多野结衣在线影院| 国产亚洲综合久久| 国产二区视频在线观看| 一本一本久久a久久精品牛牛影视| 91亚洲国产成人久久精品麻豆| 欧美中文字幕亚洲一区二区va在线| 九九九在线观看| 精品日韩中文字幕| 91高清免费看| 91美女福利视频| 伊人国产在线视频| 青椒成人免费视频| www.这里只有精品| 国产尤物一区二区在线 | 老司机一区二区三区| 一本一道久久a久久综合精品 | 欧美丰满熟妇bbbbbb| 亚洲欧美怡红院| 丰满少妇高潮久久三区| 亚洲综合色噜噜狠狠| 国产在线观看h| 国产日韩欧美电影| 成熟妇人a片免费看网站| 蜜臀av一区二区在线免费观看| 国产精品乱码久久久久| 欧美96一区二区免费视频| 狠狠操狠狠干视频| 久久九九精品| 超碰在线97免费| 九九精品视频在线看| 亚洲天堂小视频| 美腿丝袜亚洲色图| 黄色片子免费看| av电影天堂一区二区在线| 欧美激情aaa| av一二三不卡影片| 亚洲精品一区二区三区影院忠贞| 国产精品蜜臀在线观看| 五月婷婷一区二区| 色哟哟在线观看一区二区三区| 免费在线观看黄色av| 1区2区3区欧美| 国产精品23p| 欧美三级电影网站| www.97超碰| 亚洲欧美一区二区精品久久久| av二区在线| 国产性色av一区二区| 免费在线观看av网站| 午夜精品久久久久久久久久久久| 欧美xxxx做受欧美护士| 欧亚精品中文字幕| 亚洲aⅴ网站| 国产免费一区二区三区在线观看| 一区二区三区四区精品视频| 欧美日韩一区二区视频在线观看| 综合久久久久| 国产wwwxx| 91在线小视频| 日韩va亚洲va欧美va清高| 欧美日韩国产综合视频在线观看中文| 中文字字幕在线中文乱码| 亚洲国产精品电影| 天天操天天干天天| 日韩极品精品视频免费观看| 中文字幕在线视频区| 国自在线精品视频| 亚洲女同志freevdieo| 91久久久国产精品| 精品视频在线一区| 日本一区免费看| 久久资源综合| 热这里只有精品| 视频一区视频二区中文字幕| 中文字幕天堂av| 亚洲精品日韩专区silk| 麻豆chinese极品少妇| 欧美专区亚洲专区| 裸体xxxx视频在线| 日韩在线精品一区| 欧美18av| 成人美女免费网站视频| 欧美猛男同性videos| 亚洲精品tv久久久久久久久| 天天色综合色| 男女啪啪网站视频| 久久久综合九色合综国产精品| 91激情视频在线观看| 精品久久在线播放| 欧美 日韩 人妻 高清 中文| 欧美伦理91i| 99视频这里有精品| 亚洲一区二区三区精品在线观看| 日韩专区在线视频| 天天躁日日躁aaaa视频| 欧美性极品少妇精品网站| 午夜精品免费观看| 精品亚洲精品福利线在观看| 国产乱码在线| 日本精品视频网站| 欧洲亚洲成人| 青青草原国产免费| 久久精品国产精品青草| 国精产品视频一二二区| 亚洲影院久久精品| 无码人妻精品一区二区三区不卡 | 成人在线免费看| 日本免费久久高清视频| 美女亚洲一区| 91激情视频在线| 国产精品视频一二三区| 伊人免费在线观看高清版| 日韩亚洲国产中文字幕| 国产精品一区三区在线观看| 日产精品久久久久久久蜜臀| 亚洲综合二区| 亚洲av综合一区二区| 在线中文字幕一区| 尤物视频在线免费观看| 91久久久久久久久久久| 综合一区二区三区| 国模无码视频一区| 日韩欧美亚洲国产一区| 国产高清免费av在线| 国产在线98福利播放视频| 亚洲免费福利一区| 九九热在线免费| 综合久久给合久久狠狠狠97色| 国产激情久久久久久熟女老人av| 性色av一区二区三区在线观看| 亚洲瘦老头同性70tv| 天天综合网日韩| 玉米视频成人免费看| 天堂在线资源网| 国产精品第七影院| 欧美96在线丨欧| 亚洲乱码国产乱码精品精大量| 亚洲欧美日韩中文字幕一区二区三区 | 欧美天天综合| 免费看三级黄色片| 欧美日韩免费网站| 日本网站在线免费观看视频| 成人片在线免费看| 水野朝阳av一区二区三区| 亚洲a∨无码无在线观看| 精品久久久久久久久久久院品网| 乡村艳史在线观看| 天天成人综合网| 91亚洲精品一区二区乱码| 91tv国产成人福利| 97视频免费看| 久久久久久久久久久9不雅视频| 亚洲一区二区三区四区av| 欧美三级韩国三级日本一级| 美女日批视频在线观看| 亚洲自拍在线观看| 亚洲综合国产| 久草免费在线视频观看| 一本色道久久综合狠狠躁篇怎么玩 | 高清视频一区二区三区| 青青草精品视频| 亚洲另类在线观看| 色综合久久久888|