null、undefined、NaN

1.undefined类型

Undefined类型只有一个值,即特殊的undefined。

在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。

var message;
alert(message == undefined); //true

引入这个值的目的是为了正式区分空对象指针(null)与未经初始化的变量。

不过,包含undefined值的变量和尚未定义的变量还是不一样的。

var message;//这个变量声明后默认取得了undefined值
//下面这个变量没有声明
//var age
alert(message); //“undefined”
alert(age);       //产生错误

对于尚未声明过的变量,只能执行一项操作,即使用typeof操作符检测其数据类型。

var message;//这个变量声明后默认取得了undefined值
//下面这个变量没有声明
//var age
alert(typeof message); //“undefined”
alert(typeof age);       //“undefined”

void运算符

undefined是一个内置标识符,它的值为undefined,通过viod运算符即可得到该值。viod表达式没有返回值,因此返回结果是undefined。void并不改变表达式的结果,只是让表达式不返回值。

var a = 42;
console.log(void a ,a); //undefined 42

按惯例我们用void 0来获得Undefined。void 0,void 1 和undefined之间并还没有实质上的区别。

2.Null类型

Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这个正是typeof(null)==object的原因。

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

if(car != null){
 //对car对象执行某些操作
}

实际上,undefined值是派生自null值的,所以null == undefined //true

只要意在保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值。这样做不仅可以体现null作为空类对象指针的惯例,而且也有助于进一步区分null 和undefined.

3.NaN(Number类型)

NaN即非数值,是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。

NaN本身有两个特点:

任何涉及NaN的操作 (NaN/10)都会返回NaN

NaN与任何值都不相等,包括NaN本身

针对这两个特点,ES定义了isNaN()函数。这个函数接收一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换成数值,例如字符串“10”或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值