成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript中的解構(gòu)賦值

Panda / 2657人閱讀

摘要:是這樣描述解構(gòu)賦值的解構(gòu)賦值語(yǔ)法是一種表達(dá)式用來(lái)將數(shù)組中的值或?qū)ο笾械膶傩匀〕鰜?lái)區(qū)分為不同變量。現(xiàn)在讓我們將坐標(biāo)點(diǎn)放進(jìn)一個(gè)數(shù)組中現(xiàn)在要對(duì)這些點(diǎn)進(jìn)行處理,傳統(tǒng)可以想到的方法是這樣的借助解構(gòu)賦值,能變得這樣簡(jiǎn)潔使用箭頭函數(shù)更簡(jiǎn)潔

JavaScript是一種很有趣的語(yǔ)言,我個(gè)人很喜歡它,雖然仍還有些人不大喜歡它。在ECMAScript6(ES6)中,有許多有用的特性來(lái)使JavaScript開發(fā)更有趣。在本文中,我將來(lái)探討一些關(guān)于解構(gòu)賦值的內(nèi)容,并提供一些可能有用的實(shí)際例子。

MDN是這樣描述解構(gòu)賦值的:

解構(gòu)賦值語(yǔ)法是一種 JavaScript表達(dá)式 用來(lái)將 數(shù)組中的值或?qū)ο笾械?屬性 取出來(lái)區(qū)分為不同變量。
對(duì)象的解構(gòu)賦值

假設(shè)你有一個(gè)對(duì)象用來(lái)表示3維空間中的一個(gè)點(diǎn):

let myPointInSpace = {
    x: 3,
    y: -2,
    z: 2.7
}

假設(shè)你要用這些坐標(biāo)做一些 計(jì)算,你會(huì)將這些坐標(biāo)取出并賦值給變量 以便 后續(xù)使用

//sqrt() 平方根
let distance = Math.sqrt(x*x + y*y + z*z);

這樣確實(shí)可以生效。但是如果你做了足夠多次,你可能已經(jīng)很厭煩這樣的復(fù)制粘貼了。使用解構(gòu)賦值,你能更簡(jiǎn)單的采集到這些坐標(biāo):

let {x,y,z} = myPointInSpace;
let distance1 = Math.sqrt(x*x + y*y + z*z);

這里的大括號(hào)指明了解構(gòu)賦值。上面代碼中的第一行查看了myPointInSpace變量,并從中查找大括號(hào)內(nèi)指明的任何屬性,最后返回他們并賦值為獨(dú)立的變量。

如果你只需要x和y坐標(biāo),你也可以這樣做:

let {x,y} = myPointInSpace;
數(shù)組的解構(gòu)賦值

解構(gòu)賦值能很好的運(yùn)用在對(duì)象中,但它同樣也能很好的作用于數(shù)組中?,F(xiàn)在讓我們將坐標(biāo)點(diǎn)放進(jìn)一個(gè)數(shù)組中:

var myPointInSpaces= [{x:12,y:33,z:44},{x:12,y:22,z:32}];

現(xiàn)在要對(duì)這些點(diǎn)進(jìn)行處理,傳統(tǒng)可以想到的方法是這樣的

var myPointInSpaces= [{x:11,y:21,z:31},{x:12,y:22,z:32}];
let newPointInSpaces = myPointInSpaces.map(function(value,index,array){
    console.log(value.x);//11 12
    console.log(value.y);//21 22
    console.log(value.z);//31 33
    return {
        x:value.x + 1,
        y:value.y + 1,
        z:value.z + 1
    }
})
console.log(newPointInSpaces);// [{x:12,y:22,z:32},{x:13,y:23,z:33}]

借助解構(gòu)賦值,能變得這樣簡(jiǎn)潔:

var myPointInSpaces= [{x:11,y:21,z:31},{x:12,y:22,z:32}];
let newPointInSpaces = myPointInSpaces.map(function({x,y,z},index,array){
    console.log(x);//11 12
    console.log(y);//21 22
    console.log(z);//31 33
    return {
        x:x + 1,
        y:y + 1,
        z:z + 1
    }
})
console.log(newPointInSpaces);// [{x:12,y:22,z:32},{x:13,y:23,z:33}]

使用箭頭函數(shù)更簡(jiǎn)潔

var myPointInSpaces= [{x:11,y:21,z:31},{x:12,y:22,z:32}];
let newPointInSpaces = myPointInSpaces.map(({x,y,z})=>({
    x:x+1,
    y:y+1,
    z:z+1
}))
console.log(newPointInSpaces);// [{x:12,y:22,z:32},{x:13,y:23,z:33}]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104710.html

相關(guān)文章

  • [譯]JavaScript ES6解構(gòu)賦值指南

    摘要:解構(gòu)賦值允許我們將右邊的表達(dá)式看起來(lái)也像變量聲明一般,然后在左邊將值一一提取。數(shù)組的解構(gòu)賦值現(xiàn)在假設(shè)我們有一個(gè)變量,其值為。通過(guò),這會(huì)看上去更清晰簡(jiǎn)潔最后的解構(gòu)賦值給的語(yǔ)法帶來(lái)了更多的現(xiàn)代化。 前言 讓我們來(lái)仔細(xì)地看看ES6所帶來(lái)的更清晰的變量聲明與賦值語(yǔ)法?,F(xiàn)今的變量聲明語(yǔ)法十分的直接:左邊是一個(gè)變量名,右邊可以是一個(gè)數(shù)組:[]的表達(dá)式或一個(gè)對(duì)象:{}的表達(dá)式,等等。解構(gòu)賦值允許我...

    Jeff 評(píng)論0 收藏0
  • ES6學(xué)習(xí)手稿之基本類型擴(kuò)展

    摘要:它是一個(gè)通用標(biāo)準(zhǔn),奠定了的基本語(yǔ)法。年月發(fā)布了的第一個(gè)版本,正式名稱就是標(biāo)準(zhǔn)簡(jiǎn)稱。結(jié)語(yǔ)的基本擴(kuò)展還有一些沒(méi)有在這里詳細(xì)介紹。 前言 ES6標(biāo)準(zhǔn)以及頒布兩年了,但是,好像還沒(méi)有完全走進(jìn)我們的日常開發(fā)。這篇文章從ES6的基本類型擴(kuò)展入手,逐步展開對(duì)ES6的介紹。 ECMAScript和JavaScript JavaScript是由Netscape創(chuàng)造的,該公司1996年11月將JavaSc...

    tommego 評(píng)論0 收藏0
  • javascript解構(gòu)賦值

    摘要:此文章為意譯并非直譯,可參考具體原文解構(gòu)賦值具體干什么解構(gòu)賦值是中的一個(gè)表達(dá)式語(yǔ)法糖,幫助開發(fā)者將數(shù)組,對(duì)象屬性解構(gòu)出來(lái)并且直接賦值到具體變量上面。 此文章為意譯并非直譯,可參考具體原文 解構(gòu)賦值具體干什么? 解構(gòu)賦值是javascript中的一個(gè)表達(dá)式語(yǔ)法糖,幫助開發(fā)者將數(shù)組,對(duì)象屬性解構(gòu)出來(lái)并且直接賦值到具體變量上面。 直接來(lái)段代碼感受下 let a,b,rest; [a,b] =...

    canopus4u 評(píng)論0 收藏0
  • JavaScript基礎(chǔ)之ES6對(duì)象解構(gòu)賦值

    摘要:具體的分析暫時(shí)不討論解決的方式很簡(jiǎn)單,把上面的代碼塊變成一段表達(dá)式就小明總結(jié)解構(gòu)賦值是提供一個(gè)十分方便的表達(dá)式。的解構(gòu)賦值小明的對(duì)象賦值這里可以被賦予初始值小明對(duì)象的屬性不存在能夠賦值給多個(gè)變量 對(duì)象解構(gòu)賦值 ES6 允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)(Destructuring)。 --- 阮一峰《ECMAScript...

    sutaking 評(píng)論0 收藏0
  • ECMASCRIPT 6 實(shí)戰(zhàn)之 解構(gòu)賦值

    摘要:相信解構(gòu)賦值自以下簡(jiǎn)稱面世以來(lái)被大家快速地熟悉并運(yùn)用到實(shí)際開發(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í)際開發(fā)中了, 這是...

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

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

0條評(píng)論

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