---
# System prepended metadata

title: 'Vue學習 #1 ES6縮寫'
tags: [Vue, Vue 直播班 - 2022 春季班]

---

# Vue學習 #1 ES6縮寫
###### tags: `Vue 直播班 - 2022 春季班` `Vue`
## 語法糖 (讓原本語法變簡潔)

### <font color=#831437> 物件內函式 ---- 把:function拿掉</font>
```=JavaScript
const obj = {
  myName: '物件',
  fn: function() {   
    return this.myName;
  }
}

// #2 物件字面值 Object literals
// #2-1 物件內的函式
 const obj3 = {
   myName: '物件',
   fn(){ // 請改為縮寫  把:function拿掉
     return this.myName;
   }
 }
```
### <font color=#831437> 物件內放入變數 --- 變數也是物件</font>
``` =JavaScirpt
// #2-2 物件內的變數
//在一個物件中放入一個物件
 const person = {
   name: '小明'  
 };

 const human={
   person:person  //<=重點在這裡
 }
 console.log(human);
 //-----------------------
 
 const  guitarType='j-45'; 
 
 const guitar={
     guitarType  //原本寫法想把 type放進去屬性，要變成 type:guitarType ， 語法糖可以直接縮寫將變數放進去
 };
 
 console.log(guitar);
 
```
### <font color=#831437> 陣列合併 --- 運用[...array]</font>
```=JavaScript
const groupA = ['小明', '杰倫', '阿姨'];
const groupB = ['老媽', '老爸'];
const groupAll = groupA.concat(groupB);
let groupTwo=[...groupA]; //代表的是將 groupTwo這個陣列設定成groupA
console.log(groupTwo);
let groupThree=[...groupB]; //代表的是將groupThree這個陣列設定成groupB
console.log(groupThree);
let arrayConbine=[...groupA , ... groupB] //代表將groupA和groupB組合再一起放到arrayConbine，效果跟concat一樣
console.log(arrayConbine);
```
### <font color=#831437>物件擴展 --- 將物件的內容都放到另一個物件上 </font>
```=Javascirpt
// #3-2 物件擴展
// 新增一個物件包含新方法，同時加入原有的方法
const methods = {
  fn1() {
    console.log(1);
  },
  fn2() {
    console.log(1);
  },
}
const newMethod={
  ...methods  //將methods的函式放到newMethod裡面
}
console.log(newMethod);
```
### <font color=#831437> 轉成純陣列 --- NodeList轉成array</font>
```=JavaScript
// #3-3 轉成純陣列
const doms = document.querySelectorAll('li'); //用querySelectorAll抓元素會傳來的是NodeList並不會是單純的array
console.log(doms); // 請轉為純陣列 
const array=[...doms]; //轉為純陣列
console.log(array);
```
### <font color=#831437>預設值 --- 將函式參數直接給一個值</font>
```=Javascirpt
function sum(a=6, b=2) { // 請加入預設值避免錯誤  //將a和b預設值進去
  return a + b;
}
console.log(sum()); //()如果ab沒有放入值就會啟用預設值 ans:8
console.log(sum(2,3)); // 如果有放入值，就不會啟用預設值 ans:5
```
### <font color=#831437>解構</font>
```=JavaScript
const people={
    danny:{
        name:'danny123',
        like:'布丁',
        price:40
    },
    rick:{
        name:'rick456',
        like:'泡芙',
        price:60
    },
    gowork(){
        console.log('去上班');
    }
};

//想取出danny
//原本寫法:  let person=people.danny;
//解構寫法: 把想抓的值放在{} = 該物件 
let {danny}=people;

//想取出gowork這個方法
//原本寫法: let gowork123=people.gowork();
//解構寫法: 把要的方法放在{} = 該物件
let {gowork} = people;
```

### <font color=#831437>? --- 避免物件值不存在</font>
```=JavaScript
const people={
    danny:{
        name:'danny123',
        like:'布丁',
        price:40
    },
    rick:{
        name:'rick456',
        like:'泡芙',
        price:60
    },
};

//想要抓people裡面的jay屬性
//但是people沒有jay，所以執行下一行的時候會報錯，程式碼就不會繼續往下執行

console.log(people.jay.name);

//使用 ? 這個語法時並不會報錯，而是顯示這個值是 undefined

console.log(people?.jay?.name);

```