摘要:從開(kāi)始,引入了解構(gòu)賦值,可以同時(shí)對(duì)一組變量進(jìn)行賦值。?;绢?lèi)型結(jié)果注意,對(duì)數(shù)組元素進(jìn)行解構(gòu)賦值時(shí),多個(gè)變量要用括起來(lái)。
從ES6開(kāi)始,JavaScript引入了解構(gòu)賦值,可以同時(shí)對(duì)一組變量進(jìn)行賦值。。1. 基本類(lèi)型
let [lString, lBoolean, lNumber] = ["ES6", true, 20181227]; // 結(jié)果:lString = ES6, lBoolean = true, lNumber = 20181227 /** * 注意,對(duì)數(shù)組元素進(jìn)行解構(gòu)賦值時(shí),多個(gè)變量要用[...]括起來(lái)。 * 如果數(shù)組本身還有嵌套,也可以通過(guò)下面的形式進(jìn)行解構(gòu)賦值,注意嵌套層次和位置要保持一致: */ let [lString, lBoolean, lNumber] = ["ES6", [true, 20181227]]; // 結(jié)果:lString = ES6, lBoolean = true,20181227, lNumber = undefined // 正確的做法 let [lString, [lBoolean, lNumber]] = ["ES6", [true, 20181227]]; // 結(jié)果:lString = ES6, lBoolean = true, lNumber = 20181227 // 解構(gòu)賦值還可以忽略某些元素: let [, , lNumber] = ["ES6", [true, 20181227]]; // 結(jié)果:lNumber = 201812272. 數(shù)組類(lèi)型
let [clubs, players] = [ ["Lakers", "Magic"], ["Lonzo Ball", "Anthony Davis", "Kawhi Leonard", "Donovan Mitchell", "達(dá)龍 福克斯"] ]; // 結(jié)果:clubs = [ "Lakers", "Magic" ] // 結(jié)果:players = [ "Lonzo Ball", "Anthony Davis", "Kawhi Leonard", "Donovan Mitchell", "達(dá)龍 ??怂? ]3. 對(duì)象類(lèi)型
let person = { name: "達(dá)龍 ??怂?, age: 20, gender: "male", passport: "G-12345678", school: "Kentucky", address: { city: "重慶", street: "龍湖時(shí)代天街", zipcode: "400002" } }; let { name, address: { city, zip } } = person; /** * name = "達(dá)龍 ??怂? * city = "重慶" * zip = undefined #因?yàn)閷傩悦莦ipcode而不是zip * 注意: address不是變量,而是為了讓city和zip獲得嵌套的address對(duì)象的屬性: * address; #ReferenceError: address is not defined */ /** * >> 使用解構(gòu)賦值對(duì)對(duì)象屬性進(jìn)行賦值時(shí),如果對(duì)應(yīng)的屬性不存在,變量將被賦值為undefined, * 這和引用一個(gè)不存在的屬性獲得undefined是一致的。 * >> 如果要使用的變量名和屬性名不一致,可以用下面的語(yǔ)法獲取: */ let { name, address: { city, zipcode:code } } = person; // code = "400002" // 解構(gòu)賦值還可以使用默認(rèn)值,這樣就避免了不存在的屬性返回undefined的問(wèn)題: let { name, address: { city, zipcode:code }, club="kings" } = person; // club = "kings"4. 使用場(chǎng)景
// 快速獲取當(dāng)前頁(yè)面的域名和路徑: let {hostname:domain, pathname:path} = location; /** * 如果一個(gè)函數(shù)接收一個(gè)對(duì)象作為參數(shù),那么,可以使用解構(gòu)直接把對(duì)象的屬性綁定到變量中。 * 例如,下面的函數(shù)可以快速創(chuàng)建一個(gè)Date對(duì)象: */ function buildDate({year, month, day, hour=0, minute=0, second=0}) { return new Date(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second); } buildDate({ year: 2018, month: 12, day: 27 }); // Thu Dec 27 2018 00:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) // 傳入hour、minute和second屬性: buildDate({ year: 2018, month: 12, day: 27, hour: 20, minute: 15 }); // Thu Dec 27 2018 20:15:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/100448.html
摘要:相信解構(gòu)賦值自以下簡(jiǎn)稱面世以來(lái)被大家快速地熟悉并運(yùn)用到實(shí)際開(kāi)發(fā)中了這是一種能有效減少代碼量,使代碼邏輯更簡(jiǎn)單優(yōu)雅的技術(shù)下面我們就再來(lái)回顧總結(jié)一下解構(gòu)賦值的種種用法吧基本用法從對(duì)象解構(gòu)假設(shè)有一個(gè)對(duì)象,它的結(jié)構(gòu)為以對(duì)稱的形式從從邊的對(duì)象中匹配與 相信解構(gòu)賦值(Destructuring)自 ECMASCRIPT 6(以下簡(jiǎn)稱 ES 6) 面世以來(lái)被大家快速地熟悉并運(yùn)用到實(shí)際開(kāi)發(fā)中了, 這是...
摘要:比如上面展示的情況都是可以聯(lián)合使用的比如對(duì)象的解構(gòu)賦值對(duì)象的解構(gòu)賦值是基于屬性的。當(dāng)給已存在的變量解構(gòu)賦值時(shí),注意加這是由于如果不加會(huì)把左邊看成一個(gè)代碼塊,會(huì)報(bào)錯(cuò)。注意事項(xiàng)數(shù)組的解構(gòu)賦值中,使用的變量必須放在最后。 解構(gòu)賦值 解構(gòu)賦值是一個(gè)聽(tīng)起來(lái)比較高大上的特性,但按我的理解,它就是一種語(yǔ)法糖。它并沒(méi)有賦予js更強(qiáng)大的能力,只是讓賦值操作更加的靈活,效率。 在es6之前,賦值操作需要=...
摘要:中還存在字符串?dāng)?shù)組布爾值等各種解構(gòu)賦值,基本概念和原理都和對(duì)象的解構(gòu)賦值類(lèi)似,這里就不在全部列舉了。 ES6解構(gòu)賦值 ES6變量的解構(gòu)賦值本質(zhì)上是模式匹配,只要等號(hào)兩邊的模式相同,左邊的變量就會(huì)被賦予匹配的右邊的值,如果匹配不成功變量的值就等于undefined 數(shù)組的解構(gòu)賦值 ES6中只要某種數(shù)據(jù)有Iterator接口(也就是可以循環(huán)迭代),都可以進(jìn)行數(shù)組的解構(gòu)賦值。Example1...
摘要:的解構(gòu)特性,可以簡(jiǎn)化這項(xiàng)工作。必須傳值的解構(gòu)參數(shù)如果調(diào)用函數(shù)時(shí)不提供被解構(gòu)的參數(shù)會(huì)導(dǎo)致程序拋出錯(cuò)誤程序報(bào)錯(cuò)缺失的第三個(gè)參數(shù),其值為。 在編碼過(guò)程中,我們經(jīng)常定義許多對(duì)象和數(shù)組,然后有組織地從中提取相關(guān)的信息片段。ES6的解構(gòu)特性,可以簡(jiǎn)化這項(xiàng)工作。解構(gòu)是一種打破數(shù)據(jù)結(jié)構(gòu),將其拆分為更小部分的過(guò)程。 未使用解構(gòu)的做法 let options = { repeat: true, ...
閱讀 3718·2021-10-09 09:58
閱讀 1275·2021-09-22 15:20
閱讀 2558·2019-08-30 15:54
閱讀 3570·2019-08-30 14:08
閱讀 955·2019-08-30 13:06
閱讀 1885·2019-08-26 12:16
閱讀 2745·2019-08-26 12:11
閱讀 2574·2019-08-26 10:38