undefined和null的区别:
http://developer.51cto.com/art/201401/426966.htm
一、undefined
指的是不存在,当变量没有声明或者声明了但是没有赋值的情况下变量为undefined
二、null
null是字面量同时也是语言中的关键字,用来表示无法识别的对象值。换句话说,这用来表示“无值(no value)”
三、
1、null == undefined //true 这是因为这样比较是比较转换成值的比较
2、null === undefined //false 这是因为比较的是值和类型 typeof 后的结果
3、JavaScript环境从来没有设置一个值为null;它必须以编程方式完成。(指JavaScript没有值默认会被赋值为null,只有外部API试图获取一个不存在的元素才会返回null值。)
正如文档MDN所说:在API中,null是经常检索对象的地方可以预期,但没有相关的对象。这适用于DOM,它是独立于语言的,不属于ECMAScript规范的范围。因为它是一个外部API,试图获取一个不存在的元素返回一个null值,而不是undefined。