---
# System prepended metadata

title: 物件，變數與型別
tags: [JavaScript]

---

# 物件，變數與型別
###### tags: `JavaScript`
JavaScript**物件**可以指派給一個**變數**並會在**執行時期**擁有**型別**
### 何謂物件
在記憶體中的資料，被一個**識別符號**所參考。
- JS合法識別符號必須是英文字母/數字/金額符號($)/底線(_)
- JS合法識別符號不能以**數字**開頭
### 何謂變數
用來存放記憶體位置的container。
#### 特性
- 變數本身沒有型別，物件才有型別。
- 變數"本身"存的只有物件的位置，assign變數就是將變數"指向"該物件。
### 型別
JS共有兩大類型別，分別為:
- 物件型別
- 原始型別
#### 原始型別
共六種:
-  number
-  string
-  boolean
-  null (空值)
-  undefined (未定義)
-  symbol (符號)ES6新增
#### 物件型別
除了前六種原始物件以外的所有物件皆屬於物件型別。Eg, Array, function, Object...
### 物件型別的特性
- 任何一個JS物件都只會有一種成員(成分)，就是***屬性***!
- 屬性與變數具相同特性，指向(儲存記憶體位置)任何記憶體內的資料(物件)
- 屬性名稱一定是**字串**
```
// 建立一個物件並宣告一個變數***指向***此物件
var car = {
    name: 'Tesla',
    miles: 20000,
    start: function() { return 'OK' },
    001: 'LogEntry#1' // '001': 'LogEntry#1'
};

// 合法取得物件內屬性的方式
car.name // String型別的物件'Tesla'被name:識別符號所參考
car['name'] // 'Tesla'

// JS合法的識別符號不能以數字開頭
car.001 //  return syntaxError
car['001'] // 'LogEntry#1'
```