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

来源:互联网 发布:电子商务的域名 编辑:程序博客网 时间:2024/06/10 13:45

数字

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

> 1 == 1.0true

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

NaN

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

> typeof NaN'number'
> NaN == NaNfalse> NaN !== NaNtrue

可以用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/0Infinity

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

> Infinity - InfinityNaN

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

> Infinity + InfinityInfinity> 4 * InfinityInfinity

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

0 0
原创粉丝点击