問題: 從陣列或物件中提取資訊傳統方法:
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 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...