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变量会相等。但是使用的场合是不同的。而且严格的说恒等(===)两者就不在相等了。

 

 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值