---
# System prepended metadata

title: '何謂物件取值？在什麼時機上會用到？點(.)和方括號([])取值的不同之處'
tags: [JavaScript, JS 直播班  - 2021 秋季班]

---

# 何謂物件取值？在什麼時機上會用到？點(.)和方括號([])取值的不同之處
###### tags: `JavaScript` `JS 直播班  - 2021 秋季班`

首先要先有一個物件~以下是一把吉他的型號跟規格
```=javascript
let guitar={
    brand:'eastman',
    model:'E1-D',
    Neck Material: 'Mahogany',
    Fingerboard: 'Ebony',
    Fingerboard Radius: '12',
    Body Top: 'Solid Sitka Spruce',
    Body Back/Sides: 'Solid Sapele',
    Bridge/Saddle: 'Ebony/Bone, 2 5/32" Spacing',
}
```
**何謂物件取值**

首先為什麼要有物件，有些事物有很多相關的屬性跟它有關係，但是寫程式碼的時候如果把這些關聯的屬性都寫成變數，一來在管理上面不容易，二來時間如果久了要找到這些屬性也是很麻煩，所以就利用物件的方式將這個事物有關的屬性都包起來。那既然我們創立了物件那我們可以簡單地找到該物件的屬性，在使用上面也可以直接取出物件的屬性的值來做使用哦~


**物件取值的方式:**
```=javascript

//比如我想要知道這把 guitar 的型號(model)是什麼那我們就把它取出來 
//1.利用 . 來取值 ( syntax: object.attribute)
let data=guitar.model; 

//2. 利用 類似陣列的方式取值 ( syntax: object["attribute"])
let data2=guitar['model'];
```
**兩種方式使用的時機**

第一種方式是最直觀的，透過 . 直接將屬性拉出來，我也最喜歡這種方法

**那假如遇到以下程式碼怎麼辦呢?**

```=javascript
let obj={
  '天氣':'rain'
};
console.log(obj.'天氣');  //會報錯(X)
```

它的屬性名稱是用' '包著，我們在寫的時候並不會寫利用 . 取值方式
```=javascript
let obj={
  '天氣':'rain'
};
console.log(obj['天氣']); //(O)
```
這時候就要利用第二種類似陣列的方式取出才不會出錯哦~
