JavaScript语言精粹(一) — 数字、NaN和Infinity

数字

JS中只有一个单一数值类型,内部表示为64位整数,(Java中的double)。没有单独分离出整数类型,所以1和1.0是相等的。

> 1 == 1.0
true

这样,完全避免了短整数溢出的问题及一大类因为数字类型导致的错误。

NaN

NaN是一个数值,表示一个不能产生正常计算结果的运算结果,NaN不等于任何值,包括它自己。

> typeof NaN
'number'
> NaN == NaN
false
> NaN !== NaN
true

可以用isNaN( number ) 来检测 NaN

> isNaN(NaN)
true

isNaN会隐式的将入参转换成数字,如果不能转换成数字(不能转数字的字符串,{},[] 等),那么也会返回NaN

> Number('ABC')
NaN
> isNaN('ABC')
true

可以利用NaN的特性 x !== x 来判断NaN,避免上述隐式转换的问题。

function myIsNaN(x) {
    return x !== x;
}

Infinity

用0做除数会产生一个特殊值Infinity(无穷大)。

> 3/0
Infinity

正负无穷运算:无法得到运算结果

> Infinity - Infinity
NaN

比正无穷大的,还是正无穷

> Infinity + Infinity
Infinity
> 4 * Infinity
Infinity

参考:http://www.cnblogs.com/ziyunfei/archive/2012/09/19/2690866.html
书籍:JavaScript语言精粹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值