**物件字面值**
1. 物件內函式縮寫
```
const product = {
name: '商品',
fn: function() {
return this.name;
}
}
console.log(product.fn());
```
物件中的 fn:function()
可簡寫為 fn()
```
const product = {
name: '商品',
fn() {
return this.name;
}
}
console.log(product.fn());
```
上述兩種寫法得到相同的結果
補充:箭頭函式為新增語法,this指向不同,會影響運作,語法糖則不影響運作,邏輯與當前JavaScript一致。
2. 物件內變數
Key與Value名稱相同時
```
const man = {
name: 小明
}
const people = {
man: man
}
```
可省去同名的部分,簡寫為下方的方式:
```
const man = {
name: 小明
}
const people = {
man
}
```
結果如下:

**展開**
1. 陣列串接
使用concact語法將兩個陣列串接起來:
```
const groupA = ['蘋果','梨子','橘子']
const groupB = ['香蕉','柳丁']
const groupAll = groupA.concact(groupB)
console.log(groupAll)
```
使用「展開」來串接
```
const groupA = ['蘋果','梨子','橘子']
const groupB = ['香蕉','柳丁']
const groupAll = [...groupA, ...groupB]
console.log(groupAll)
```
得到相同結果:

2. 物件串接
```
const methods = {
fn1() {
console.log(1);
},
fn2() {
console.log(1);
},
}
const newMethods = {
...methods,
fn3() {
console.log(1);
}
}
console.log(newMethods);
```
得到以下結果:

3. 轉成純陣列
```
const doms = document.querySelectorAll('li');
console.log(doms);
```
印出後得到以下結果:

並非一般純陣列,此時,如要得到純陣列,同樣可以使用展開方法
```
const doms = document.querySelectorAll('li');
const newDoms = [...doms]
console.log(newDoms);
```
印出後即可得到純陣列:

**預設值**
如參數b不存在,會回傳NaN,使用if設定預設值為0,無參數b時,b=0,有參數則使用參數值
```
function sum(a, b) {
if(!b) { b = 0}
return a + b;
}
console.log(sum(1));
```
此時得到結果為「1」
ES6語法糖則可直接將預設值寫在參數的位置:
```
function sum(a, b = 0) {
return a + b;
}
console.log(sum(1));
```
即可得到同樣的結果:1