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

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

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

前言

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

一、數組解構

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

例:      

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

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

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

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

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

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

2. 剩余的 ‘…’

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

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

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

3. 默認值

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

let [firstName, surname] = [];


alert(firstName); // undefined
alert(surname); // undefined

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

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

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

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

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

二、對象解構

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

基本語法:

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

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

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

例 :

let options = {  
  title: "Menu",  width: 100,  height: 200
};
let {title, width, height} = options;
alert(title);  // Menualert(width);  // 100
alert(height); // 200

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

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

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

1. 剩余模式(pattern)

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

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

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

例:

let options = {
  title: "Menu",
  height: 200,
  width: 100
};
// title = 名為 title 的屬性
// rest = 存有剩余屬性的對象
let {title, ...rest} = options;
// 現在 title="Menu", rest={height: 200, width: 100}
alert(rest.height);  // 200
alert(rest.width);   // 100

注:

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

三、智能函數參數

案例

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

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

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

let options = {
  title: "My menu",
  items: ["Item1", "Item2"]
};
function showMenu({
  title = "Untitled",
  width: w = 100,  // width goes to w
  height: h = 200, // height goes to h
  items: [item1, item2] // items first element goes to item1, second to item2
}) {
  alert( `${title} ${w} ${h}` ); // My Menu 100 200
  alert( item1 ); // Item1
  alert( item2 ); // Item2
}
showMenu(options);

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

function({
  incomingProperty: varName = defaultValue


})

注:

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

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

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

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

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

運行結果:

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

四、總結

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

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

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

2024-06-18 10:28:46

2021-07-26 05:20:47

JavaScript解構賦值數組解構

2024-09-10 15:34:18

JavaScript解構賦值

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-18 10:05:14

JavaScript數組遍歷

2021-06-15 10:01:27

JavaScript數組遍歷Entries

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

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

2021-10-09 07:10:31

JavaScript對象Python
點贊
收藏

51CTO技術棧公眾號

久草资源在线| 欧美激情中文字幕乱码免费| 欧美专区第一页| 亚洲成人手机在线观看| 五月天婷婷久久| 99精品国产九九国产精品| 国产精品外国| 日韩欧美电影一二三| 亚洲春色在线视频| 日本免费精品视频| 天天久久夜夜| 激情成人中文字幕| 国产精选在线观看91| 国产乱国产乱老熟300| 欧美大陆国产| 中文字幕av资源一区| 国产成人在线亚洲欧美| 中文字幕狠狠干| 韩日毛片在线观看| 91在线视频观看| 88xx成人精品| 日本黄色网址大全| 免费一区二区三区在线视频| 亚洲视频图片小说| 91在线观看欧美日韩| 中文字幕在线有码| 成人性生交大片免费看中文视频| 亚洲综合丝袜美腿| 国产偷国产偷亚洲高清97cao| 麻豆视频在线观看| 国产区精品视频在线观看豆花| 亚洲永久精品大片| 亚洲www在线| 久久网一区二区| 精品女人视频| 一本到一区二区三区| 青青草久久网络| 在线观看国产成人| 一级毛片免费高清中文字幕久久网| 3751色影院一区二区三区| 91免费网站视频| 国产美女永久免费| 亚洲毛片一区| 一本一道久久a久久精品逆3p| 992kp快乐看片永久免费网址| 成a人v在线播放| 激情亚洲综合在线| 久久久久女教师免费一区| 好男人香蕉影院| 久九九久频精品短视频| 国产精品美女久久久久久久| 亚洲一区二区三区四区在线播放| 中国一区二区视频| 亚洲女同中文字幕| 久久精品成人一区二区三区 | 色呦呦一区二区| 两个人看的在线视频www| 久久久三级国产网站| 国产精品一香蕉国产线看观看 | 日本黄色三级视频| 国产一区二区三区的电影| 久久久久久亚洲精品不卡| 免费人成在线观看| 亚洲麻豆av| 日本欧美精品在线| 69夜色精品国产69乱| 国产一区调教| 亚洲国产女人aaa毛片在线| 北条麻妃av高潮尖叫在线观看| 米奇777四色精品人人爽| 粉嫩嫩av羞羞动漫久久久| 国产成人亚洲精品| 欧美人一级淫片a免费播放| 欧美三级不卡| 中文字幕日韩综合av| 日韩无码精品一区二区| 日韩av影院| 欧美一二三区在线观看| 奇米精品一区二区三区| gogo在线观看| 国产亚洲精品7777| 国产日本一区二区三区| 欧美中文在线| 高清成人免费视频| 久久久久久欧美精品色一二三四| 国产一区二区三区中文字幕| 国产美女一区| 国产精品网站入口| 精品人妻一区二区三区四区不卡 | 国产精品中文字幕亚洲欧美| 欧美一区二区三区系列电影| 日韩精品无码一区二区三区免费| 少妇av在线| 国产精品美女一区二区三区| 先锋影音男人资源| 2017亚洲天堂1024| 久久久一区二区三区捆绑**| 亚洲不卡1区| 黄色a在线观看| 国产一区不卡视频| 国产精品久久久久久久久久久不卡| 精品久久免费视频| 欧美高清一区| 不用播放器成人网| 91香蕉视频网| 久久社区一区| 色青青草原桃花久久综合| 国产综合精品在线| 亚洲性视频大全| 亚洲女人被黑人巨大进入al| 99久久人妻精品免费二区| 成功精品影院| 在线成人激情视频| 亚洲国产精一区二区三区性色| 奇米888四色在线精品| 国产精品va在线播放我和闺蜜| 99免费在线视频| 国产在线精品一区二区夜色| 久久艹中文字幕| 在线观看免费视频你懂的| 亚洲人成亚洲人成在线观看图片 | 欧美精品欧美精品系列c| 亚洲卡一卡二卡三| 成人午夜免费视频| 国产伦精品一区二区三毛| 91九色在线porn| 一本大道av一区二区在线播放| 性生交大片免费看l| 97品白浆高清久久久久久 | 99自拍视频在线观看| 在线亚洲+欧美+日本专区| 男人插女人下面免费视频| 美女视频免费精品| 欧美精品videosex极品1| 999av视频| 亚洲同性gay激情无套| 亚洲国产高清av| 国产视频网站一区二区三区| 日韩欧美国产wwwww| 亚洲一级理论片| 欧美精品日韩| av电影成人| 免费在线视频一级不卡| 中文天堂在线一区| 日韩中文字幕免费在线| 夜夜躁狠狠躁日日躁2021日韩| 97精品视频在线| 中文字幕av第一页| 久久精品亚洲精品国产欧美| 日韩在线第三页| 欧美丝袜一区| 欧美激情综合亚洲一二区| 国产深喉视频一区二区| 亚洲精品乱码久久久久久黑人 | 欧美aaa级片| 奇米精品一区二区三区四区| 亚洲欧洲久久| 91丨精品丨国产| 欧美麻豆久久久久久中文| 日本网站在线免费观看| 成人午夜电影小说| 亚洲 自拍 另类小说综合图区| 日韩在线影院| 欧美mv日韩mv国产网站app| 永久免费成人代码| 日韩激情一二三区| 国产精品久久久久久久免费大片| 日本高清在线观看视频| 亚洲国产天堂久久综合网| 欧美精品韩国精品| 国产精品一区三区| 视频一区二区在线| 动漫一区二区三区| 欧美精品免费在线观看| 中文在线资源天堂| 中文字幕在线一区免费| 夫妻免费无码v看片| 日韩视频在线直播| 色999日韩欧美国产| aaa国产视频| 亚洲一区二区三区中文字幕| 亚洲永久无码7777kkk| 男女视频一区二区| 奇米精品在线| 日本精品视频| 奇米4444一区二区三区| 在线看免费av| 亚洲精品成人网| 中文字幕在线网址| 亚洲小说欧美激情另类| 亚洲精品午夜视频| 国产一区二区三区黄视频| 777精品久无码人妻蜜桃| 日韩久久久久| 国产精品一区二区三区在线播放| 日皮视频在线观看| 伊人激情综合网| 黄色一级大片在线免费看国产一| 色猫猫国产区一区二在线视频| 免费日本黄色网址| 蜜臀va亚洲va欧美va天堂| www.成年人视频| 综合久久成人| 欧美极品美女视频网站在线观看免费| 三级国产在线观看| 欧美久久婷婷综合色| 黑人操日本美女| 99久久婷婷国产综合精品 | 伊人222成人综合网| 亚洲精品小视频在线观看| 国产精品第72页| 成人妖精视频yjsp地址| 亚洲欧美自拍另类日韩| 日韩久久视频| 久久人人爽爽人人爽人人片av| 成人噜噜噜噜| 国产精品欧美日韩一区二区| 18免费在线视频| 日韩国产精品一区| 无码人妻av一区二区三区波多野| 一区二区三区.www| 强制高潮抽搐sm调教高h| 久久久99精品免费观看不卡| 无码任你躁久久久久久老妇| 国产午夜精品一区二区三区欧美| 九九久久九九久久| 国产精品x8x8一区二区| 成人精品一区二区三区| 中文字幕伦理免费在线视频 | 亚洲精品国偷自产在线99热| 国产三级三级在线观看| 欧美精品日韩一本| 最近国语视频在线观看免费播放| 中文字幕不卡在线观看| 国产高清自拍视频| 91丝袜高跟美女视频| 青青草av网站| 久久久亚洲人| 99视频精品全部免费看| 99精品美女| 国产伦理一区二区三区| 中文字幕日韩在线| 成人午夜影院在线观看| 三上悠亚激情av一区二区三区| 国精产品一区一区三区有限在线| 尤物视频在线看| 欧美日本在线视频中文字字幕| gogo在线高清视频| 欧美精品一二区| 欧美亚洲天堂| 国产一区二区三区在线免费观看| 色在线免费视频| 亚洲码在线观看| 国产在线你懂得| 日韩午夜在线观看| 国产v在线观看| 日韩女优视频免费观看| 韩国av免费在线观看| 亚洲第一av在线| 亚洲视屏在线观看| 欧美三区在线视频| 色婷婷av国产精品| 亚洲欧美另类久久久精品 | 神马香蕉久久| 久久综合久久久| 欧美日韩午夜电影网| 99三级在线| 网友自拍区视频精品| 欧洲精品一区色| 成人久久电影| 浴室偷拍美女洗澡456在线| 国产在线不卡| 亚洲国产一区二区精品视频 | 久久精品国产成人精品| 1区2区在线观看| 538国产精品一区二区在线| av片在线观看永久免费| 久久久久免费精品国产| 欧美xo影院| 成人欧美一区二区三区黑人| 99re热精品视频| 日本成人三级电影网站| 91精品国产调教在线观看| 日韩高清专区| 日韩电影不卡一区| 性欧美videosex高清少妇| 一区二区三区在线电影| 欧美精品99久久| 精品一区二区精品| 五十路六十路七十路熟婆| 国产精品免费看片| 国产第100页| 欧美日韩久久久一区| 久操视频在线免费观看| 3d动漫精品啪啪一区二区竹菊 | 中文字幕久久精品| 久草在线视频福利| 国产精品直播网红| 理论片一区二区在线| 一区二区精品在线| 日韩久久精品网| 啊啊啊一区二区| 国产二区国产一区在线观看| 亚洲五月激情网| 久久久久亚洲综合| 久久综合亚洲色hezyo国产| 在线国产亚洲欧美| 蜜桃视频污在线观看| 色婷婷成人综合| 中老年在线免费视频| 青青草成人在线| 日本高清精品| 一区二区在线不卡| 我不卡影院28| 免费在线激情视频| 日韩专区中文字幕一区二区| 国产伦理在线观看| 国产精品久久久久久久久免费桃花| 国产又大又黑又粗免费视频| 精品久久久久久中文字幕大豆网| 国产精品久久婷婷| 欧美tk—视频vk| 麻豆tv免费在线观看| 国产精品成人久久久久| 欧美尿孔扩张虐视频| 欧洲精品在线播放| 9色国产精品| chinese少妇国语对白| 成人av资源在线| 中文字幕第4页| 精品久久久久久中文字幕| 亚洲国产福利视频| 欧美另类在线播放| 麻豆国产一区二区三区四区| 在线观看国产一区| 免费观看30秒视频久久| 波多野吉衣中文字幕| 国产精品久久久久久户外露出 | 九九视频在线观看| 日韩欧美三级在线| 影音先锋中文在线视频| 亚洲综合国产精品| 欧美二区视频| 亚洲国产精品第一页| 2021国产精品久久精品| 午夜精品久久久久99蜜桃最新版| 欧美日韩综合不卡| 18免费在线视频| 91精品综合视频| 欧美 日韩 国产一区二区在线视频| 免费在线观看污网站| 97久久超碰精品国产| 国产成人亚洲精品自产在线| 日韩av中文字幕在线| 波多视频一区| 日韩精品在在线一区二区中文| 日韩有码一区二区三区| 女人十八毛片嫩草av| 亚洲成人7777| 国产麻豆一精品一男同| 久久视频国产精品免费视频在线| 国产精一区二区| 欧美亚洲黄色片| 成人动漫在线一区| 亚洲第一网站在线观看| 亚洲精品自拍视频| 午夜欧美巨大性欧美巨大 | 91视频在线观看| 91精品视频免费观看| 亚洲特色特黄| 亚洲国产欧美视频| 欧美性猛交xxxxxxxx| 殴美一级特黄aaaaaa| 国产91精品久久久久| 欧美日韩久久精品| 日韩在线视频在线观看| 国产女主播视频一区二区| 欧美福利视频一区二区| 亚洲深夜福利视频| 欧美aa免费在线| 四虎一区二区| 丁香桃色午夜亚洲一区二区三区| 亚洲第一精品在线观看| 色妞欧美日韩在线| 大陆精大陆国产国语精品 | 狠狠色狠狠色综合日日91app| 一级黄色录像视频| 亚洲欧美国产精品| 精品国产亚洲日本| 亚洲自偷自拍熟女另类| 亚洲日本中文字幕区| 四虎影视2018在线播放alocalhost| 久久影院中文字幕| 久久97精品| 亚洲精品综合在线观看| 国产精品毛片高清在线完整版 | 亚洲天堂av电影| 国产精品igao视频网网址不卡日韩| 奇米精品一区二区三区| 亚洲欧洲日产国码二区|