1.undefined是js的一个原始值,不是一个对象,表示变量没有初始化,
null也是js的一个原始值,不是一个对象,他表示变量为空,但由于语言设计的缺陷,导致typeof(null)为object,而正确的应该为null
alert(typeof(null)); // object alert(typeof(undefined)); // undefined alert(null !== undefined); //true alert(null == undefined); //true
2.object == null 与 !object 是不同的,因为!object相当于!Boolean(object)
alert(Boolean(null)); //false alert(Boolean(0)); //false alert(Boolean("")); //false alert(Boolean({})); //true alert(Boolean([])); //true