Undefined 和 Null 都是JS五种基本数据类型之一(Number,String,Boolean,Undefined,Null),而它们都只有唯一的值,分别是undefined 以及 null。
alert(typeof a); //undefined
alert(typeof b); //object
alert(undefined == null) //true
可知,其实null和undefined 是很相似的,一开始好像甚至只有null没有undefined,但是为了区分空指针以及未定义,才创建了Undefined这个数据类型.
undefined表示“创建了,未定义”,也即是说他虽然被创建了,但是没有值,不知道拿来干嘛。
unll表示“创建了,已定义,且值为null”。
一个变量在声明时赋undefined是没有意义的,因为如果没声明其他值的情况下,默认为undefined。
但是一个变量声明为null则有意义,它代表的是一个空指针对象,也就是说它虽然是对象,但却没有占用内存。
如果一开始就想这个变量以后是用来保存对象的,那就设置为null。这样可以对undefined进行区分。同时一个已有的对象在使用完后也应该设置为null,通知垃圾回收系统来对内存进行回收,释放内存。