亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

JS解構(gòu)賦值

EastWoodYang / 1985人閱讀

摘要:從開(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 = 20181227
2. 數(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

相關(guān)文章

  • ECMASCRIPT 6 實(shí)戰(zhàn)之 解構(gòu)賦值

    摘要:相信解構(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ā)中了, 這是...

    yangrd 評(píng)論0 收藏0
  • es6 - 解構(gòu)賦值

    摘要:比如上面展示的情況都是可以聯(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之前,賦值操作需要=...

    DirtyMind 評(píng)論0 收藏0
  • ES6解構(gòu)賦值原理詳解

    摘要:中還存在字符串?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...

    wing324 評(píng)論0 收藏0
  • ES6系列---解構(gòu)

    摘要:的解構(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, ...

    baoxl 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<