ES6 學習筆記之變量的解構賦值
- 2020 年 1 月 5 日
- 筆記
ES6 中增加了幾種對變量初始化的方式,從改進來看,個人覺得可以大大的增加編碼的效率。帶相對語法可能就晦澀一些了。但總歸熟能生巧,多用就不會那麼容易犯錯了。
變量的解構賦值
ES5 中給多個變量賦值寫法如下:
let a = 1; let b = 2; let c = 3;
而 ES6 中則一句話搞定:
let [a, b, c] = [1, 2, 3];
摘抄書中的一句話「ES6 允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destructuring)。」,更多對於變量的解構賦值請參考書中的詳細介紹,我個人覺得平時可能用不到那麼變態的用法。
解構賦值默認值
let [foo = true] = []; foo // true let [x, y = 'b'] = ['a']; // x='a', y='b' let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'
通過上面的代碼可以看出,如果賦值時不指定具體內容,那麼會使用我們準備好的默認值,這與其他一些語言中的函數默認參數差不多。更多細節請參考書中介紹。
對象的解構賦值
let { bar, foo } = { foo: "aaa", bar: "bbb" }; foo // "aaa" bar // "bbb" let { baz } = { foo: "aaa", bar: "bbb" }; baz // undefined
對象的解構賦值相對嚴格一些,它不是按順序解析的,而是按成員名稱匹配解析的。其他字符串、布爾、函數參數都具有解構賦值的特性。且均無明顯差異。書中介紹了一些解構賦值的常用應用場景,比如下面這個案例,通過解構賦值就很方便的遍歷了 map 中的內容。
var map = new Map(); map.set('first', 'Hello'); map.set('second', 'World'); for (let [key, value] of map) { console.log(key + ' is ' + value); }