JavaScript基础篇--Undefined与Null

undefinednullJs中的五种类型中的两种数据


 

 

先说下我们如何检查他们的不同。使用的是typeof操作符,用户检查变量的数据类型,对于值或变量使用typefo操作符会有如下结果

 

字符串          描述

Undefined      未定义

Object          对象或null

 

相同点:


javascript中,将一个变量赋值为undefinednull。几乎是没有区别的

 

Var a=undefined;
Var a=null;
 

上面代码中,a变量分别被赋值为undefined和null,这两种写法几乎等价。

 

我们通过if的隐士转换看看他们的结果是否相同,测试结果

 

if (!undefined)
    alert(‘undefined is false‘);
// undefined is false
 
if (!null)
    alert(‘null is false‘);
Undefined==null
//True
 
var box=null
 
var car;
if(car==box)
{
alert(‘我们值相等‘);        
}


以上代码说明两者行为是相等的

 

 

不同点:

 

undefined类型


只有一个值,undefined,是声明变量,但没有对其初始化,这个变量的默认是就是undefined

 

测试:

 

Var box;
Alert(box);

因为没有赋值的变量会隐式转为undefined,它的目的主要是为了用于比较。

未初始化的变量与根本不存在的变量也是不一样的

 

Var box;
Alert(age);  //age is not defined
 
Alert(typeofage)//undefined
Alert(typeofbox) //undefined

我们测试他们的typeof结果都返回undefined,但是逻辑上他们的值一个是undefined,一个是报错(notdefined)。所以我们在定义变量时候,不要只声明,不赋值。

 

 

Null类型



它表示一个空对象引用,typeof操作检测null会返回object


测试

 

var box=null;
Alert(typeof box);//page isobject
//box是null类型,值是null,类型返回的字符是object

我们再用隐士的转换测试


Var box=null;
If(box!=null){
Alert("box对象已经存在");
}

结果是box对象已经存在,为何呢.了解到if的表达式boolean类型的,所以这里存在着数据类型的转换。

Box转为对象类型,对象类型与null值是不相等的

 

小结

 

 虽然undefnull两个值比较是相等的,所以初始化的变量和赋值为null变量会相等。但是使用的场合是不同的。而且严格的说恒等(===)两者就不在相等了。

 

 



JavaScript基础篇--Undefined与Null,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。