JS中Null与Undefined的区别

    我们知道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中派生出来的,所以把他们定义为相等。要区别这个我们可以用===恒等于(绝对等于)来判断 

原文地址:https://www.cnblogs.com/imnzq/p/6639584.html