es6 陣列與物件解構賦值

2021-10-01 16:06:31 字數 3128 閱讀 1579

問題: 從陣列或物件中提取資訊

傳統方法:

let

obj=

letname

=obj

.name

;let

age=

obj.

age;

[varible1, varible2, ..., variblen] = array;

let

arr=[1

,2,3

];// let a = arr[0]; // 傳統方法

// let b = arr[1];

// let c = arr[2];

let[a,

b,c]

=arr

;// 解構賦值

console

.log(a

,b,c

);// 返回1 2 3

使用:01. 必須要進行初始化

let

arr=[1

,2,3

];let[a

,b,c

];// 報錯

let[a,

b,c]

=arr

;// 正確

02. 可以在解構中忽略一些項: 可以省略變數名,但是要使用英文逗號分隔

let

arr=[1

,2,3

];let

[,,a]=

arr;

console

.log(a

);// 返回3

03. 互換兩個變數的值

letx=

1;lety=2

;let

temp

;// 傳統方法要新增乙個變數

temp=x

;x=y

;y=temp

;console

.log(x

,y);// 返回2, 1[x

,y]=

[y,x

]// 解構賦值

console

.log(x

,y)// 返回2, 1

04. 空陣列預設值

// let[x, y] = [undefined, undefined];

// console.log(x, y) // 返回undefined undefined

let[x=

10,y=

20]=[,

2];// 嚴格等於===undefined會得到預設值 null不嚴格等於undefined

console

.log(x

,y)// 返回10 2

let

name

='enoch'

;let

obj=

console

.log

(obj

.name

)

01. 基本語法: 字面量物件 = 字面量物件

let

=// 左邊的屬性名匹配右邊的屬性名,右邊的值賦值給左邊的變數 屬性名和相同可簡寫

console

.log

(name1

,age1

,***

);// 返回 enoch 10 male

02. 注意:

必須要進行初始化 等號的左邊和右邊都必須有值 let{} = {}

在賦值的時候使用解構賦值

let

name1

,age1

,***

;// =

// 這樣會報錯,瀏覽器會識別成**塊,我們應該加上()告訴瀏覽器這是表示式 物件(=

)console

.log

(name1

,age1

,***

);console

.log((=

))// 返回物件 整個表示式的值等於右邊的值

03. 減少**獲得變數名的寫法:

functionfn(

value

)let

obj=

// fn(obj) // 傳物件 返回物件

// fn({}=obj) // 傳解構賦值表示式 返回物件

// fn(=obj) // 傳解構賦值表示式 返回物件fn(

=obj

)// 傳值時把變數一併傳入

04. 空物件預設值

let

obj=

console

.log

(obj.a

);// 返回undefined

let=

// 嚴格等於才能得到預設值

console

.log

(name

,age

)// 返回值或預設值

陣列模式匹配

let[a

,b,c

]=[1

,2,3

];// 正常

let[a,

b,[c

,d]]=

[1,2

,3];// 報錯

let[a,

b,[c

,d]]=

[1,2

,];// 不報錯

// 等於[c

,d]=

物件模式匹配

let

=console

.log(a

,b,c

)

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