es6 解構

解構: 從數組或對象中提取值,對變量進行賦值

         解構賦值號的兩邊的格式需要相互對應,對應位置的數值類型也需要一致

let [a,b.[c]] = [1,2,[3]]

a==1
b==2
c==3

let [ar,...are] = [1,2,3,4]

ar==1
are==[2,3,4]

let [f,...h] = [1]

f==1
h==[]

解構不成功的值會返回undefined

 

解構數組是按照順序進行解構賦值下去的,而解構對象的時候則會根據對象的名稱進行賦值,比如

let {a,b} = {b:'alice',a:'sam'}

a==sam
b==alice

解構對象的時候,需要賦值的對象的名稱一定要和賦值右面的是一直的,不然將會找不到該對象,得到undefined

解構對象的時候,如果對象的變量名和屬性名不一致的時候,賦值的時候,變量名一定要寫對,不然就會找不到這個值得到undefined,而我們賦予的值是給與屬性名,變量名並不會得到賦值

let {obj:bo} = {obj:'alice'}

bo === alice

let {obj:bo,abj:ad} = { obj:'this'}

bo === this
ad === undefined
obj === undefined

對象的解構可以設置默認值

 

 

常見的解構用途:

1: 交換變量的值

let [a , b ] = [b, a]

2: 從函數中返回多個值

function fn(){

     return [a,s,b]

}

var [a,b,c] = fn()

3:  給函數賦值

function fn([a,b,c]){

//函數執行方法

}

fn([1,2,3])

4: 獲取json對象中的值

var obj = {

 val:'zlic',

 name:'anga'

age:23

}

let {val,name,age} = obj

 

5: 遍歷map解構

var map = new Map()

map.set('first,'one')

map.set('second','two')

for(let [key,value] of map){

   console.log(key+'-'+value

}

 //  first-one

//  second-two

 

也可以單獨的只循環其中的key或者value

6:  輸入指定模塊的方法

(一般在我們引用一些庫的時候,我們可能只引用到其中的某個方法,此時我們便可以使用到解構,將其中一個方法解構獲取出來,import導入和require導入方式都會有,我們需要用{} 包裹住解構獲取到的方法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章