ES6 解構賦值

2022-03-07 17:55:01 字數 1927 閱讀 9133

注意點:

1、等號左右兩邊結構必須一樣

let [a,b] = 

//typeerror: is not iterable

2、右邊結構語法必須正確。既不是物件,也不是陣列,語法不正確

let  = 

//syntaxerror: unexpected token ,

3、宣告與賦值不能分開

let [a, b]          //

宣告[a, b] = [1, 2] //

賦值//

syntaxerror: missing initializer in destructuring declaration(解構宣告缺乏初始化)

可以這樣先宣告後賦值

let a, b

[a, b] = [1, 2]

let [a, b, ...rest] = [10, 20, 30, 40, 50]

console.log(a)

//10

console.log(b) //

20console.log(rest) //

[30,40,50]

變數多時,值為undefined

let [a, b] = [1]

console.log(a); //1

console.log(b); //

undefined

變數少時,忽略後面的值

let [a, b] = [1, 2, 3, 4, 5]

console.log(a); //1

console.log(b); //2//

後面的值忽略

let [a = 2, b = 7] = [1]

console.log(a) //1

console.log(b) //

7

let a = 3, b = 1  //

這裡的分號不加會報錯,referenceerror: cannot access 'b' before initialization

[a, b] =[b, a]

console.log(a) //1

console.log(b) //

3

基本賦值

let  = 

console.log(a) //1

console.log(b) //

2

先宣告後賦值

let a, b;

( = )

這裡的(...)必須加

let  = 

console.log(c) //1

console.log(d) //

2

與陣列解構類似

let  = 

console.log(a) //1

console.log(b) //

20

let  = 

console.log(c) //1

console.log(d) //

20

好的應用1

好的應用2

let  = 

console.log(rest)

//

var obj = ;

object.prototype.b = 2;

//或者

//obj.__proto__.b = 2

const =obj;

console.log(a) //1

console.log(b) //

2

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 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...