---
# System prepended metadata

title: undefined 與 null 的差異
tags: [六角JS 直播班 - 2021 秋季班]

---

###### tags: `六角JS 直播班 - 2021 秋季班`
undefined 與 null 的差異
===

## undefined
- 變數若未被宣告，或宣告了但未被賦予值，預設為undefined
- undefined 的型別（typeof）為undefined

```javascript=
let a;
console.log(a) //undefined
```

## null
- 變數必須經過宣告並賦予null，宣告空值用的
- null 的型別（typeof）為 object

```javascript=
let a = null;
console.log(a) //null
```

## undefined 與 null 的共通點
- 皆為基本型別
- 皆為falsy value
    - 補充：falsy value包含：
        - “ ” 空字串
        - 0
        - undefined
        - null 空值
        - NaN 非數字

## 特別注意!
```javascript=
null == undefined //true
null === undefined //false
```

一律使用===，可以更確實判斷型別，避免 null, undefined 被強制轉型。

<br>

>參考資料
>[Null & undefined 型態差異 - Node.js day 7](https://ithelp.ithome.com.tw/articles/10103799)