解構賦值是對賦值運算子的擴充套件。
他是一種針對陣列或者物件進行模式匹配,然後對其中的變數進行賦值。
在**書寫上簡潔且易讀,語義更加清晰明了;也方便了複雜物件中資料字段獲取。
在解構中,有下面兩部分參與:
解構的源,解構賦值表示式的右邊部分。
解構的目標,解構賦值表示式的左邊部分。
陣列模型的解構(array)
基本
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
```swift
可忽略let [a,
, b]=[
1,2,
3];// a = 1
// b = 3
不完全解構
let [a =
1, b]=[
];// 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 =
3a 正常解構賦值,匹配結果:a =
1,b 匹配結果 undefined ,觸發預設值:b = a =
1a 與 b 正常解構賦值,匹配結果:a =
1,b =
2
基本
let =;
// foo = 'aaa'
// bar = 'bbb'
let =;
// foo = 'ddd'
可巢狀可忽略
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;
ES6系列 ES6簡介
2015年6月17日,ecmascript的第六個版本正式發布,該版本正式名稱為ecmascript 2015,但通常被稱為ecmascript 6或者es6。瀏覽器對es6的支援情況 es6主要應用於node.js,如果想用在瀏覽器中,就需要使用轉碼器 將es6 轉成es5 這意味著,可以用es6...
ES6 資料結構)
一 set 用法 set 對陣列進行轉化 新增重複元素不會生效 應用 去重複功能 轉化過程不會有資料型別的轉換 新增 刪除 判斷是否存在的方法 讀取 遍歷 的幾種方法 二 weakset 與set的區別 1.weakset 的元素只能是物件 2.weakset 的物件是弱應用 不會檢測是否在其他中用...
ES6的陣列結構賦值
es允許按照一定模式,從事狐族和物件中提取值,對變數進行賦值。這被稱之為結構。通常,我們賦值一般都會採用以下的這種方式 var a 3 var b string es6寫法 var a,b 3,string 下面是以巢狀陣列賦值的例子 let a,b,c name age a name b c ag...