---
# System prepended metadata

title: Java常見的縮寫 (1)
tags: [JavaScript]

---

# Java常見的縮寫 (1)
###### tags: `JavaScript`



## 1. ES縮寫
###  語法糖 VS 新增語法
語法糖：將程式碼變更簡潔，且不影響原本運作。
新增語法：之前沒有這功能，會影響運作。
```
const obj = {
  myName: '物件',
  fn: function() {
    return this.myName;
  }
}
console.log(obj.fn());

#####################語法糖#####################
const obj = {
  myName: '物件',
  fn() {
    return this.myName;
  }
}
console.log(obj.fn());
###############################################

###################新增語法#####################
新增語法 (結果:undifind)
const obj = {
  myName: '物件',
  fn: () => {
    return this.myName;
  }
}
console.log(obj.fn());
###############################################
```
### 物件內變數，若要複製名字相同，可不用設定名字。
```
const person = {name:小明};
const people = {person:person}; //當複製的物件名與要新增的名稱相同，不用額外打名稱。
const people = {person}; //可縮寫成這樣。
```

### 展開
兩陣列合併
```
const A = ['a','b','c'];
const B = ['e','f','g'];
const conbinAB1 = A.concat(B); //原始寫法
const conbinAB2 = [...A,...B]; //展開寫法
```
物件合併
```
const methods = {
    fn1(){console.log(1);},
    fn2(){console.log(2);}
};
const Newmethods = {
    fn(){console.log(0);},
    ...methods  //直接用展開方式複製整個物件
};
```
轉成純陣列
```
const doms = document.querySelectorAll('li'); //搜尋li並將它存至陣列中。
console.log(doms); // 請轉為純陣列
const Newdoms = [...doms];
console.log(Newdoms);
```

### 預設值
```
function sum(a,b=2){
    return a+b;
};
console.log(sum(1)); //如果沒給值，b會直接帶2

```


