undefined: 声明了变量,但未赋值。例如:var a;
null:声明了某一变量,并赋值,只是值为空。例如:var obj = null。
-------------------------------------------------------------------------------------------------------------------
---那么什么时候变量赋值为null,有什么意义?
变量a赋值为Object类型, var a = {name: xiaoming};
当对a进行一系列操作之后,不再需要变量a存在的时候, 人为地赋值a = null ——切断a与之前堆空间的联系,便于及时地把存储了{name: xiaoming}的堆内空间释放
注意,这只对Object类型(引用型)的变量有意义