JavaScrip Undefine类型和Null类型

本文详细解释了Undefined和Null两种JavaScript基本类型的特性和用途。Undefined类型仅有一个特殊值undefined,通常用于表示未初始化的变量。而Null则表示一个空对象指针,在变量预期将保存对象引用但目前还未保存具体对象时,初始化为null更为合适。

一、Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:

var message;  //message的值为undefined。

一般而言,不存在需要显式地把一个变量设置为undefined值的情况。字面值undefined的主要目的是用于比较,而ECMA-262第3版之前的版本中并没有规定这个值。第3版引入这个值是为了正式区分空对象指针与未经初始化的变量。

不过,包含undefined值的变量与尚未定义的变量还是不一样的。例如:

var message; //这个变量声明之后默认取得了undefined值

alert(age); //age尚未定义,会报错.

对于尚未声明过的变量,只能执行一项操作,即使用typeof操作符检测其数据类型(对未经声明的变量调用delete不会导致错误,但这样做没什么实际意义,而且在严格模式下确实会导致错误)。

即便为初始化的变量会自动被赋予undefined值,但显式地初始化变量依然是明智的选择。如果能做到这一点,那么当typeof操作符返回"undefined"值时,我们就知道被检测的变量还没有被声明,而不是尚未初始化。

二、Null类型

从逻辑角度来看,null值表示一个空对象指针,而这也是使用typeof操作符检测null值时会返回"object"的原因。

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用。

无论在什么情况下都没有必要把一个变量的值显式地设置为undefined,可是同样的规则对null却不适用,换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值