精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

av高清一区| 国产中文字幕在线播放| 欧美人成在线| 日韩精品视频免费| 一区二区三区免费播放| 亚洲91av| 国产日本欧洲亚洲| 亚洲最大av在线| 久久国产精品免费看| 郴州新闻综合频道在线直播| 日韩一区二区电影网| 欧美日韩成人免费视频| 一广人看www在线观看免费视频| 国产精品自拍av| 日韩免费在线播放| 欧美色图亚洲天堂| 国产不卡一区| 欧美一区二区三区婷婷月色| 女人喷潮完整视频| 国产黄大片在线观看画质优化| 97精品久久久午夜一区二区三区| 国产在线日韩在线| 国产黄网在线观看| 精品成人国产| 美女精品视频一区| b站大片免费直播| swag国产精品一区二区| 欧美日高清视频| 1024精品视频| 欧美性受ⅹ╳╳╳黑人a性爽| 久久久久久久国产精品影院| 国产传媒一区二区| 国产免费一区二区三区免费视频| 日韩激情在线观看| 97碰在线观看| 久久午夜鲁丝片午夜精品| 日韩精品免费| 亚洲欧洲第一视频| 国产福利在线观看视频| 日本免费精品| 制服.丝袜.亚洲.另类.中文 | 久久久久久久人妻无码中文字幕爆| 电影天堂国产精品| 91精品办公室少妇高潮对白| 波多野结衣乳巨码无在线| 中文字幕在线播放网址| 亚洲色图20p| 一区二区在线不卡| av电影在线观看| 国产目拍亚洲精品99久久精品| 久久国产精品一区二区三区| 日本精品999| 成人免费av资源| 国产精品视频免费一区二区三区| 精品久久久免费视频| 国产精品一区二区在线播放| 91网站在线看| www.av黄色| 成人毛片老司机大片| 高清视频一区| 人妻一区二区三区| 99久久久久免费精品国产| 国内成+人亚洲| 五月婷婷激情在线| 久久久久久久久久久电影| 欧美日韩亚洲一区二区三区在线观看| 欧美美乳在线| 国产精品少妇自拍| 中国成人亚色综合网站| 麻豆免费在线视频| 亚洲精品伦理在线| 日韩av新片网| 成人性生活视频| 欧美在线观看18| 国产欧美一区二| 日韩精品中文字幕吗一区二区| 精品国产免费久久| 国产制服丝袜在线| 精品美女在线视频| 免费91在线视频| 国产真人真事毛片| 玖玖在线精品| 成人激情av在线| 丰满人妻一区二区三区免费| www.久久久久久久久| 日韩精品久久久免费观看| 日本免费在线视频| 亚洲国产精品久久人人爱| 国产日产欧美视频| 免费成人高清在线视频| 日韩精品一区二区三区老鸭窝| 亚洲精品乱码久久久久久不卡| 欧美亚洲高清| 久久免费高清视频| 最近中文字幕免费观看| 国产成人av一区| 日本10禁啪啪无遮挡免费一区二区 | 精品久久久久久久一区二区蜜臀| 无码人妻aⅴ一区二区三区| 精品久久影视| 亚洲**2019国产| 在线观看免费中文字幕| 99久久伊人精品| 在线观看成人一级片| 国产激情视频在线看| 欧美日韩精品高清| 国产精品久久久免费观看| 日韩久久精品网| 91国产视频在线| 国产丝袜视频在线观看| 国产偷国产偷精品高清尤物 | 久久久久久国产精品免费无遮挡| 亚洲国产va精品久久久不卡综合| 国产主播中文字幕| 久久365资源| 久久在线精品视频| 亚洲无码精品一区二区三区| 成人听书哪个软件好| 中文网丁香综合网| 欧美电影免费观看| 亚洲国产小视频| 欧美成人免费看| 久久97超碰国产精品超碰| 另类视频在线观看+1080p| 女囚岛在线观看| 91精品国产综合久久精品app| 久久精品无码一区| 99在线观看免费视频精品观看| 亚洲综合在线小说| 免费黄色在线观看| 欧美性极品少妇| b站大片免费直播| 性久久久久久| 欧美精品国产精品久久久| 丁香花电影在线观看完整版| 制服丝袜亚洲播放| 成人自拍小视频| 久久电影网站中文字幕| 日本一区视频在线播放| 神马电影网我不卡| 亚洲精品日韩欧美| 黄色在线观看国产| www一区二区| 99久久久无码国产精品6| 美国成人xxx| 5566成人精品视频免费| 手机在线观看免费av| 午夜视频在线观看一区二区 | 亚洲最大成人av| 中文字幕免费一区| 麻豆三级在线观看| 色97色成人| 成人午夜在线影院| 性xxxxfjsxxxxx欧美| 日韩免费观看高清完整版| 午夜精品福利在线视频| 国产精品99久久久久久宅男| 男女爱爱视频网站| 亚洲一区网址| 2019最新中文字幕| 高清日韩av电影| 欧美日本在线看| 91高清免费看| 成人黄色a**站在线观看| 日本中文字幕网址| 最近国产精品视频| 国产欧美日韩高清| 91麻豆国产福利在线观看宅福利| 精品久久一二三区| 五月天婷婷久久| 国产精品丝袜久久久久久app| 在线观看日本www| 在线欧美亚洲| 日本一区二区三区www| 欧美videos粗暴| 欧美激情一区二区三区高清视频| 日韩专区第一页| 欧美怡红院视频| 国产少妇在线观看| 久久亚洲精华国产精华液| 色哟哟精品视频| 欧美1区2区视频| 欧美裸体网站| 国产精品久久免费视频| **欧美日韩vr在线| 91啦中文在线| 亚洲的天堂在线中文字幕| 草莓视频18免费观看| 亚洲手机成人高清视频| 亚洲最大的黄色网| 精品无人码麻豆乱码1区2区| 福利在线一区二区| 欧美日韩国产高清电影| 99久久精品无码一区二区毛片| 中文字幕在线看片| 久久综合久久美利坚合众国| 天天干,天天操,天天射| 宅男在线国产精品| 香蕉影院在线观看| 一区二区三区毛片| 国产99在线 | 亚洲| 国产91精品精华液一区二区三区| 亚洲成熟丰满熟妇高潮xxxxx| 久久久久久久久丰满| 免费亚洲一区二区| 日韩欧美一级| 国产欧美一区二区三区四区| 麻豆mv在线看| 色在人av网站天堂精品| 成年在线观看免费人视频| 日韩二区三区在线| 国产草草影院ccyycom| 欧美午夜在线观看| www欧美在线| 亚洲一级二级在线| 国产午夜精品理论片在线| 久久九九久久九九| 加勒比精品视频| 成人激情午夜影院| 亚洲综合123| 久久国产婷婷国产香蕉| 久久综合久久色| 99亚洲视频| 国产精品久久久久久久久电影网| 99久久综合| 天堂精品视频| 欧美视频免费| 日韩欧美视频第二区| 国产精品探花在线观看| 久久精品日产第一区二区三区 | 精品久久人人做人人爱| 国产男女无套免费网站| 欧美裸体bbwbbwbbw| 丰满人妻一区二区三区四区| 色综合久久久久久久久久久| 亚洲日本韩国在线| 婷婷激情综合网| 日本少妇毛茸茸高潮| 午夜视频在线观看一区二区三区 | 色婷婷综合视频在线观看| 香蕉免费毛片视频| 午夜精彩视频在线观看不卡| 久久久久亚洲天堂| 亚洲一级片在线观看| 国产在线视频二区| 亚洲国产精品欧美一二99| 久久综合成人网| 亚洲成人1区2区| 国产成人免费观看视频| 精品日韩视频在线观看| 欧美性猛交bbbbb精品| 欧美性高潮床叫视频| 伊人中文字幕在线观看| 在线视频你懂得一区| 最新中文字幕在线观看视频| 欧美系列一区二区| 一级做a爰片久久毛片16| 欧美日韩免费观看一区三区| 亚洲一级av毛片| 欧美一级日韩一级| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 亚洲精品97久久| 欧美孕妇孕交| 色偷偷噜噜噜亚洲男人| 18+激情视频在线| 高清欧美性猛交xxxx黑人猛交| 交100部在线观看| 国产精品爱啪在线线免费观看| 精品三区视频| 51国偷自产一区二区三区的来源| 136导航精品福利| 免费看成人午夜电影| 日本a口亚洲| 狠狠精品干练久久久无码中文字幕| 亚洲网站在线| 毛片一区二区三区四区| 捆绑紧缚一区二区三区视频| 69久久精品无码一区二区| 成人av电影在线观看| 国产jk精品白丝av在线观看| 亚洲国产精品激情在线观看| 69av视频在线| 欧美午夜影院在线视频| 亚洲熟妇无码久久精品| 精品裸体舞一区二区三区| 久草视频在线看| 久久国产精品久久国产精品| 深夜成人在线| 91精品中文在线| 欧美一级三级| 正义之心1992免费观看全集完整版| 精品动漫一区| 天天操狠狠操夜夜操| 成人免费视频app| 欧美成人另类视频| 亚洲第一精品在线| 在线免费观看一区二区| 日韩电影中文字幕一区| 高清免费电影在线观看| 欧美一级淫片丝袜脚交| 久久九九精品视频| 日韩精品一区二区三区色偷偷 | 国产精品欧美综合在线| 激情综合网五月婷婷| 欧美探花视频资源| 五月婷婷丁香六月| 九九久久综合网站| 国产精品麻豆成人av电影艾秋| 国产精品免费观看高清| 91综合视频| 妞干网在线免费视频| 国产91精品一区二区| 992在线观看| 日本电影亚洲天堂一区| 天天射,天天干| 欧美贵妇videos办公室| www.91精品| 亚洲一区二区三区乱码| 久久久久综合| 自拍视频一区二区| 亚洲一区二区三区视频在线 | 高清不卡一区二区| 男人在线观看视频| 精品视频免费在线| 国产香蕉在线| 欧美在线一级视频| 任你躁在线精品免费| 国产一线二线三线女| 国产成人精品亚洲午夜麻豆| 国产免费一区二区三区四区| 欧美性受xxxx| 国产高清视频在线观看| 热久久这里只有| 五月天亚洲色图| 青青青免费在线| jizz一区二区| 日韩欧美三级视频| 亚洲大胆人体在线| 麻豆蜜桃在线观看| 九九九九九九精品| 免费日韩av| 国产精品国产三级国产专业不| 欧美日韩一区二区免费在线观看 | 亚洲系列中文字幕| 桃子视频成人app| 日本一区免费| 男女性色大片免费观看一区二区 | 亚洲精品国久久99热| 国产精品无码在线播放| 久久这里有精品视频| 欧美成人精品一级| 国产精品久久国产| 99久久精品国产导航| 黄色大片网站在线观看| 精品亚洲一区二区三区在线观看| 中文字幕在线中文字幕在线中三区| 久久久精彩视频| 日精品一区二区三区| 国产18无套直看片| 91精品国产色综合久久不卡电影| av网站在线免费看推荐| 成人av男人的天堂| 国产欧美日韩一区二区三区在线| 野外性满足hd| 欧美中文字幕一区二区三区| 香蕉视频网站在线观看| 成人在线视频网| 亚洲手机在线| 泷泽萝拉在线播放| 欧美日韩免费一区二区三区 | 日本精品视频在线观看| 欧美丝袜激情| xxx中文字幕| 婷婷激情综合网| 91精彩视频在线观看| 99精品国产高清一区二区| 亚洲资源av| 国产免费嫩草影院| 精品电影一区二区三区| 国产高清不卡| 潘金莲一级淫片aaaaaa播放1| 成人av网站大全| 在线观看中文字幕码| 欧美激情三级免费| 欧美一区二区三| 黑森林av导航| 在线观看日韩av先锋影音电影院| 超碰在线无需免费| 免费精品视频一区二区三区| 激情欧美一区二区三区在线观看| 国产午夜福利片| www.欧美三级电影.com| 麻豆一区二区麻豆免费观看| 欧美一级视频在线| 欧美性高潮床叫视频 | 欧美做受高潮电影o| 亚洲影视一区二区三区| 成年人在线观看av| 日韩欧美高清dvd碟片| 日本一区二区电影|