1、定義
- (1)undefined:是所有沒有賦值變量的默認值,自動賦值。
- (2)null:主動釋放一個變量引用的對象,表示一個變量不再指向任何對象地址。
2、何時使用null?
當使用完一個比較大的對象時,需要對其進行釋放內存時,設置為 null。
3、null 與 undefined 的異同點是什么呢?
共同點:都是原始類型,保存在棧中變量本地。
不同點:
(1)undefined——表示變量聲明過但並未賦過值。
它是所有未賦值變量默認值,例如:
var a; // a 自動被賦值為 undefined
(2)null——表示一個變量將來可能指向一個對象。
一般用於主動釋放指向對象的引用,例如:
var emps = ['ss','nn']; emps = null; // 釋放指向數組的引用
4、延伸——垃圾回收站
它是專門釋放對象內存的一個程序。
- (1)在底層,后台伴隨當前程序同時運行;引擎會定時自動調用垃圾回收期;
- (2)總有一個對象不再被任何變量引用時,才釋放。
5、null 和 undefined 的值相等,但類型不等:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
