ES6解構賦值

2021-10-20 02:28:04 字數 3377 閱讀 2556

解構賦值是對賦值運算子的擴充套件。

他是一種針對陣列或者物件進行模式匹配,然後對其中的變數進行賦值。

在**書寫上簡潔且易讀,語義更加清晰明了;也方便了複雜物件中資料字段獲取。

解構模型

在解構中,有下面兩部分參與:

基本

let

[a, b, c]=[

1,2,

3];// a = 1

// b = 2

// c = 3

可巢狀

let

[a,[

[b], c]]=

[1,[

[2],

3]];

// a = 1

// b = 2

// c = 3

可忽略

let

[a,, b]=[

1,2,

3];// a = 1

// b = 3

不完全解構

如果解構的源為空,切沒有解構目標沒有預設值,結果為undefined。

let

[a =

1, b=a]=[

];// a = 1, b = undefined

剩餘運算子

let

[a,...b]=[

1,2,

3];//a = 1

//b = [2, 3]

字串等

在陣列的解構中,解構的目標若為可遍歷物件,皆可進行解構賦值。可遍歷物件即實現 iterator 介面的資料。

let

[a, b, c, d, e]

='hello'

;// a = 'h'

// b = 'e'

// c = 'l'

// d = 'l'

// e = 'o'

解構預設值

let

[a =2]

=[undefined]

;// a = 2

當解構模式有匹配結果,且匹配結果是 undefined 時,會觸發預設值作為返回結果。

let

[a =

3, b = a]=[

];// a = 3, b = 3

let[a =

3, b = a]=[

1];// a = 1, b = 1

let[a =

3, b = a]=[

1,2]

;// a = 1, b = 2

a 與 b 匹配結果為 undefined ,觸發預設值:a = 3; b = a =3

a 正常解構賦值,匹配結果:a = 1,b 匹配結果 undefined ,觸發預設值:b = a =1

a 與 b 正常解構賦值,匹配結果:a = 1,b = 2

基本

const obj =

let= obj;

變數名與屬性名相同,才能取到正確的值。

如果想要自定義變數名,則用:進行修改。

let

= obj;

console.

log(n)

;

陣列本質也是特殊的物件,也可以對陣列進行物件屬性的解構。

const arr =

["諾手"

,"蠍子"

,"劫"

,"ez"

,"女坦"];

let= arr;

console.

log(first)

; console.

log(last)

;

可巢狀可忽略

let obj =]}

;let]}

= obj;

// x = 'hello'

// y = 'world'

let obj =]}

;let]}

= obj;

// x = 'hello'

不完全解構

let obj =]}

;let

, x ]

}= obj;

// x = undefined

// y = 'world'

剩餘運算子

let=;

// a = 10

// b = 20

// rest =

解構預設值

let=;

// a = 3; b = 5;

let=

;// aa = 3; bb = 5;

var obj =

, e:

function()

}const

= obj;r(

);e(

);

function

sum(

...num)

console.

log(sumnum)

}sum(1

,2,3

)//6

sum(1,

2,"3")

//6sum(1

,3,"6和4"

)//10

計算引數之和:

function

sum(

...nums)

)return sum

}

再簡潔一點,計算引數之和:

function

sum(

...a)

小數四捨五入計算總和:

function

sum(

...a)

ES6 解構賦值

陣列的解構賦值 let a,b 12,13 let a,b,c d 13,15,16 let a,b c 78,12 23 let x,y 1,3,5 x 1,y 3 let x,y,z a x a,y undefined z let h,b 1,2,3,4 1,2,3,4 預設值 let x tr...

ES6解構賦值

一 基本用法 解構 destructuring 按照一定的模式,從陣列或者物件中提取值,對變數進行賦值。let par1,par2,par3 1,2 console.log par1,par2,par3 1 2 不完全解構時par3對值為undefined 解構賦值允許指定變數對預設值。let pa...

es6解構賦值

coding changes the world accumulating makes yourself 主要從三個方面講述 陣列式的解構賦值 物件式的解構賦值 函式中的解構賦值 preface 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...