ES6 學習筆記之變量的解構賦值

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);  }

相關