什麼是語法糖?
語法糖讓程式更加簡潔,有更高的可讀性。語法糖不會影響程式運作,邏輯與當前 JS 一致。
物件字面值 Object literals
1 2 3 4 5 6 7 8
| const apple = { name: '蘋果', fn: function() { return this.name; } }
console.log(apple.fn());
|
直接將 fn: function() {} 改為 fn() {} 即可

1 2 3 4 5 6 7 8 9
| const person = { name: '阿肥' };
const people = { person: person };
console.log(people);
|
當名稱跟值同名,可以省略名稱。直接將 person: person 縮寫為 person 即可

展開
1 2 3 4 5 6
| const groupA = ['阿肥', '小胖', '大摳呆']; const groupB = ['蘋果', '香蕉']; const groupAll = groupA.concat(groupB);
console.log(groupAll);
|
直接使用…展開即可,const groupAll = [...groupA, ...groupB]

新增一個物件包含新方法,同時加入原有的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| const methods = { fn1() { console.log(1); }, fn2() { console.log(1); }, }
const newMethods = { fn() { console.log(1); }, ...methods }
console.log(newMethods);
|
1 2 3 4 5
| <ul> <li>1</li> <li>2</li> <li>3</li> </ul>
|
1 2
| const doms = document.querySelectorAll('li'); console.log(doms);
|
雖然 querySelectorAll 會取到所有 li ,但並非純陣列
(類陣列)

將類陣列使用 … 可以轉為純陣列

(純陣列)

預設值
1 2 3 4 5 6 7
| function sum(a, b) { return a + b; }
console.log(sum(1));
|
如果有預設值,當資料找不到時,就會套用預設值
若資料有正常傳入就不會套用預設值
1 2 3 4 5 6
| function sum(a, b = 5) { return a + b; }
console.log(sum(1)); console.log(sum(1,3))
|