# **Null:空類型**
  Null 是 Javascript 中特殊的原始數據類型,它只有一個值,即 null,字面意思是:“空值”? 。它的語義是,希望**表示一個對象被人為的重置為空對象,而非一個變量最原始的狀態 。**?在內存里的表示就是,棧中的變量沒有指向堆中的內存對象。當一個對象被賦值了 null 以后,原來的對象在內存中就處于游離狀態,GC 會擇機回收該對象并釋放內存。因此,如果需要釋放某個對象,就將變量設置為 null,即表示該對象已經被清空,目前無效狀態。
  null 是原始數據類型 Null 中的唯一一個值,但 typeof 會將 null 誤判為 Object 類型 。?
```
typeof null =='object'
```
  在 JavaScript 中,數據類型在底層都是以二進制形式表示的,**二進制的前三位為 0 會被 typeof 判定為對象類型**,如下所示:
* 000 - 對象,數據是對象的應用
* 1 - 整型,數據是31位帶符號整數
* 010 - 雙精度類型,數據是雙精度數字
* 100 - 字符串,數據是字符串
* 110 - 布爾類型,數據是布爾值
而 null 值的二進制表示全是 0 ,自然前三位當然也是 000,因此,typeof 會誤以為是對象類型。如果想要知道 null 的真實數據類型,可以通過下面的方式來獲取。
```
Object.prototype.toString.call(null) ;// [object Null]