---
# System prepended metadata

title: JavaScript 資料型態 (Data Types)
tags: [JavaScript]

---

# JavaScript 資料型態 (Data Types)
###### tags: `JavaScript`
資料型態說的是一個變數 (variable) 裡面儲存的是什麼類型的資料 (value)。
## 動態型別的語言 (Dynamically Typed Language)
宣告變數的時候，不用指定一個型別給這變數，瀏覽器會根據給的值，自動給一個適當的型態，且能隨時指定不同型態的值，給同樣一個變數。
``` javascript=
var score = 101; // 數值型態
score = 'Mike 得到 101 分'; // 字串型態
```
###  基本資料型態 (primitive data types)

| 型態 | 說明 | 範例 |
| -------- | -------- | -------- |
| 布林值 (Boolean)     | 只包含是與否兩種狀態     |  true / false     |
| null     | 表示這變數裡面沒有東西     |  null     |
| undefined     | 表示值還沒有定義或還未指定     |  undefined     |
| 數值 (Number)     | 表示數字型態，包含整數、浮點數     |  123 / 0.123     |
| 字串 (String)     | 表示文字型態     |  'Hello',"Hello"     |
| Symbol     | 用來表示獨一無二 (unique) 的值     |  let s1 = Symbol();     |

### 複合資料型態 (composite data types)


| 型態 | 說明 | 範例 |
| -------- | -------- | -------- |
| 陣列 (Array)     | 陣列用來儲存多個資料，陣列中的資料數量，就是這個陣列的長度 (length)     | [1,2,3,4,5]     |
| 物件 (Object)     | 基本資料型態以外的都是物件型態,KeyByValue形式     | {a:1,b:'hello'}     |

## typeof
typeof 運算字用來判斷一個運算元 (operand) 是什麼資料型態。
``` javascript=
var score = 101; // 數值型態
console.log(typeof score); // Number
score = 'Mike 得到 101 分'; // 字串型態
console.log(typeof score); // String
```