---
# System prepended metadata

title: Tại sao null(primitive type) typeof lại là object mà nó ko phải là reference type ?
tags: [nul, primitive type, object, 'null', reference type, tại sao, undefined]

---

# Tại sao null typeof là object mà nó ko phải là reference type, lại là primitive type ?


## 1. Trở lại bài cũ - javascript có mấy kiểu dữ liệu cơ bản ?
JS có 8 kiểu dữ liệu cơ bản trong đó 
- 7 kiểu là primitive types ( kiểu dữ liệu nguyên thủy )
    - 1.number
    - 2.string
    - 3.undefined
    - 4.null
    - 5.symbol
    - 6.boolean
    - 7.bigInt
- 1 kiểu là reference type (kiểu dữ liệu tham chiếu) 
    - 8.object

## 2. Quay lại vấn đề
```javascript!
let c = null;
console.log(c) // null
console.log(typeof c) // object
```
Lí do:
là vì lúc phát triển ngôn ngữ, họ vô tình tạo ra bug nên mới có sự vô lý như trên. 
--> Cứ hiểu nó là pháp tắc thiên địa là được