# 傳統
一般在將一個陣列中的值,賦值到不同的變數上,用的方式會比較繁瑣,也很有可能出錯。
let fruits = ['apple', 'orange', 'banana', 'mango'];
let 蘋果 = fruits[0];
let 橘子 = fruits[1];
let 香蕉 = fruits[2];
let 芒果 = fruits[3];
console.log(蘋果, 橘子, 香蕉, 芒果); // apple orange banana mango
# 陣列
# 解構賦值
這時候可以用解構的方式,更直覺地將值賦予給不同的變數。
let fruits = ['apple', 'orange', 'banana', 'mango'];
let [蘋果, 橘子, 香蕉, 芒果] = fruits;
console.log(蘋果, 橘子, 香蕉, 芒果); // apple orange banana mango
如左邊給的變數不夠時,解構將只會依照變數的數量進行。
let fruits = ['apple', 'orange', 'banana', 'mango'];
let [蘋果, 橘子] = fruits;
console.log(蘋果, 橘子);
當中間要跳過時,也可以不用輸入變數,即會自動跳到下一個進行賦值。
let fruits = ['apple', 'orange', 'banana', 'mango'];
let [蘋果, , 香蕉, 芒果] = fruits;
console.log(蘋果, 香蕉, 芒果); // apple banana mango
# 變數值交換
要將兩個或多個變數的值交換,往往需要第三個變數來參與,但透過解構的方式,可以更快得到我們想要的效果。
let apple = '蘋果';
let banana = '香蕉';
[apple, banana] = [banana, apple];
console.log('apple: ' + apple); // apple: 香蕉
console.log('banana: ' + banana); // banana: 蘋果
# 解構字串
將一個字串分別賦值到不同的變數上。
let school = '靜宜大學';
let [a, b, c, d] = school;
console.log(a, b, c, d); // 靜 宜 大 學
# 物件
# 取出物件內的變數
取出物件內的變數,這在後續引入各種套件包時,很常用到。
let person = {
firstName: 'John',
lastName: 'Doe',
email: 'jd1234@gmail.com',
};
let { email } = person;
console.log(email); // jd1234@gmail.com
# 將取出的變數,更改新的名稱
如果取出的變數都要依照原先的名稱,當專案變大時會變得很複雜,這時候我們將它賦予新的名稱。
let person = {
firstName: 'John',
lastName: 'Doe',
email: 'jd1234@gmail.com',
};
let { email: mail } = person;
console.log(mail);
# 預設值
先設定好變數的值,如沒有值賦予給這個變數時,它可以使用預設好的值,陣列也能使用此操作設定預設值。
let { name = 'John' } = {};
console.log(name);