聊聊es6中的解構
阿新 • • 發佈:2020-10-20
es6新增了一種從陣列或者物件中獲取指定元素的方式,這種方式就是我們今天要說的解構。
先來說說陣列的解構:
在有解構之前呢,我們獲取陣列中的指定元素通常是根據索引去做的:
const arr = [1, 2, 3];
const a = arr[1];
有了解構之後呢,我們便可以使用如下方式快速的去獲取陣列中的某個元素:
const arr = [1, 2, 3];
const [a, b, c] = arr;
console.log(a);
console.log(b);
console.log(c);
這樣打印出a, b, c的值分別是:
1
2
3
如果我們只想獲取前兩個元素呢,那麼我們可以這樣寫:
const arr = [1, 2, 3];
const [a, b] = arr;
console.log(a);
console.log(b);
我們也可以結合擴充套件運算子獲取陣列中指定的多個元素,比如:
const arr = [1, 2, 3];
const [a, ...brr] = arr;
console.log(a);
console.log(brr);
這樣brr就是除了1以外的其他元素組成的陣列,打印出a, brr的值分別是:
1
[2, 3]
那如果我們只想獲取陣列中的某一個元素呢?比如我只想獲取陣列中的2,又該如何去寫呢?
const arr = [1, 2, 3];
const [, a] = arr;
console.log(a);
以上我們通過一個逗號佔位確保我們解構和陣列本身的位置是一致的來獲取到特定位置的某個元素。
可以看到,解構的出現方便了我們去獲取陣列指定位置的一個或多個元素。這也是他在程式碼中的一個重要的應用。
說完陣列的解構,我們再來聊聊
佛山vi設計https://www.houdianzi.com/fsvi/ 豌豆資源搜尋大全https://55wd.com
物件的解構
與陣列解構不同的是,物件的解構是根據屬性名去匹配的,因為物件不像陣列下標那樣有順序,因此它不能用下標去提取。
就比如我們定義一個物件obj,我們想獲取他的name屬性值就可以這樣寫:
const obj = {
name: 'wudixiaodoujie',
age : 18
};
const { name } = obj;
console.log(name);
wudixiaodoujie
const age = 0;
const { age: perAge } = obj;
console.log(perAge);
18
物件的解構應用還是比較廣的,比如我們需要頻繁的呼叫物件的某個屬性或方法就可以通過解構將其賦值給一個變數,通過一個變數去呼叫可以在一定程度上減少程式碼量。