我们知道JavaScript一共有七种数据类型:字符串,数字,布尔,数组,对象,null,undefined,
其中原始数据类型有五种:字符串,数字,布尔,null,undefined,今天就看一下 null和undefined这两种数据类型。
这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?
undefined类型只有一个值,即undefined。当声明的变量还未被初始化的时候,变量的值默认为undefined,
var a ;console.log(a)//output undefined ,
alert(typeof(a))//output undefined;
null类型也是只有一个值,即null,null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。例子如下:
var element = getElementById("no_id");当DOM书中不存在id为"no_id"的元素的时候,alert(element);//output null;
alert(typeof element)//output object;
好,问题出现了,为什么null类型又是Object了呢?其实这个是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来,在今天我们可以解释为,null是一个不存在的对象的占位符。
但是值得注意的是,在我们实际的编码中要注意这个特性:
alert(null==undefined);//output true;
alert(null===undefined);//output false;
ECMAScript认为undefined是从null中派生出来的,所以把他们定义为相等。要区别这个我们可以用===恒等于(绝对等于)来判断