陣列的解構賦值

2021-10-21 14:55:47 字數 1331 閱讀 1736

// 以前的寫法.為變數賦值,只能直接指定值

let a =1;

let b =2;

let c =3;

// es6的允許寫法

let[a, b, c]=[

1,2,

3];//從陣列中提取值,按照對應位置,對變數賦值

console.

log(a, b, c)

;//1,2,3

// 本質上,這種寫法屬於「模式匹配」,只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值.

// 當左右兩邊不完全匹配時,出現的兩種情況。

// 1:

let[a, b]=[

1]; console.

log(a, b)

;//1,undefined

// 2:

let[a, b, c]=[

1,2,

3,4]

; console.

log(a, b, c)

;//1,2,3

// 解構賦值允許指定預設值

let[a, b =3]

=[1, undefined]

; console.

log(a, b)

;//a = 1;b = 3而不是undefined;

// 需要注意的是:es6 內部使用嚴格相等運算子(===),判斷乙個位置是否有值。所以,只有當乙個陣列成員嚴格等於undefined,預設值才會生效。

let[a, b =3]

=[1,

null];

// console.log(a, b); //a = 1;b = null而不是3 null不嚴格等於undefined;

// 預設值可以引用解構賦值的其他變數, 但該變數必須已經宣告

let[x =

1, y = x]=[

];// x=1; y=1。匹配項為undefined,使用預設值

let[x =

1, y = x]=[

2];// x=2; y=2。x匹配2,預設值1無效。匹配項的第二個值不存在,y使用預設值,為x,而x=2,故,y = 2。

let[x =

1, y = x]=[

1,2]

;// x=1; y=2。匹配項完全匹配,不嚴格等於undefined,所以不使用預設值。x = 1,y = 2。

let[x = y, y =1]

=;// referenceerror: y is not defined。y還未宣告,不能使用。

<

/script>

解構賦值 陣列的解構賦值

什麼是解構賦值?es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構 destructuring 我的理解是 允許宣告一種模式 陣列 物件等 裡面包含乙個或多個變數,再分別對這些變數遍歷 按照對應位置 賦值。以前,為變數賦值,只能直接指定值。let a 1 let b 2 通...

陣列的解構賦值

es6允許按照一定的模式,從陣列和物件中提取值,對變數進行賦值,這被稱之為解構 destructuring 以前為變數賦值,只能直接指定值 var a 1 var b 2 var c 3 es6允許寫成這樣 var a,b,c 1,2,3 本質上,這種寫法屬於 模式匹配 只要等號兩邊的模式相同,左邊...

陣列的解構賦值

es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構。es5宣告變數 let a 1 let b 2 let c 3 es6解構賦值 let a,b,c 1,2,3 本質上,這種寫法屬於 模式匹配 只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值。下面是一些使用巢狀陣列進...