![现代JavaScript编程:经典范例与实践技巧](https://wfqqreader-1252317822.image.myqcloud.com/cover/657/26793657/b_26793657.jpg)
上QQ阅读APP看书,第一时间看更新
2-9 关于Number类型
Number类型用来描述数字,和其他编程语言不同的是:JavaScript中的Number类型既可以描述整数值,也可以描述浮点值。示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P39_67176.jpg?sign=1739565724-sPudy7yXUXKRJmOicHx2iNvtnJC6RitE-0-212d9602ed7644b7b78d2f5b1b533647)
在数值前添加前缀可以将其描述为八进制或十六进制的数值。八进制需要将0作为前缀,十六进制需要将0x作为前缀,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P39_67178.jpg?sign=1739565724-rUw8Y4j3baB9bZRZry6WvwcWwkIXuhiz-0-24365225a72df3fc3e2006b766b48346)
需要注意,很多编程语言并不介意数值量前面是否添加前缀0,JavaScript语言对这一点要求十分严格,多余的0会改变数值的进制方式,造成不可控的错误。
对于非常大或非常小的数值,JavaScript中也可以使用科学计数法进行描述,使用字母e来描述10的e次方,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P39_67180.jpg?sign=1739565724-dpKqQudHAs70Cx1AgOM5RKaPjfaGXD1t-0-756140e89d48462ab0442f9791aa628f)
JavaScript中还定义了一些特殊的数值,Number.MAX_VALUE和Number.MIN_VALUE分别用来表示Number类型所能表示的最大值与最小值,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P39_67181.jpg?sign=1739565724-ZLH9KXmav0GzoWO0Y8NiTpn1OSAEAf99-0-b44616274181379056d41da777301c41)
当计算值超出了Number类型所能表示的极限时,会被认作无穷。JavaScript中也专门定义了特殊的Number值来表示无穷,其中Number.POSITIVE_INFINITY表示正无穷大,Number.NEGATIVE_INFINITY表示负无穷大,它们的值分别为Infinity与-Infinity,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P40_67182.jpg?sign=1739565724-zPMLuJJfVIS5lpq4zgVaB93NmnOYd1ib-0-e9730b94219c8ff64ac43da31554f637)
JavaScript中定义的最后一个比较特殊的Number值为NaN,为Not a Number的缩写,表示不是一个数字。这个值在字符串向数字转换失败时会被返回,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P40_67183.jpg?sign=1739565724-0Js7jOVQdyiBlUKOMoGeIsK6CIrcAxKz-0-0a42fce808bdab0e7c084e21d4e3bfc5)
需要注意,NaN这个值十分特殊,其不可以进行计算也不可以进行比较,并且与其自身也不相等,例如如下的比较将会返回false:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P40_69023.jpg?sign=1739565724-5V3iN4s60ySSUnQFiS22ytjQXOZPyBLq-0-6213f0b78b319103068d60a8747ca11f)
如果要判断一个变量的值是否是NaN,需要使用如下方法:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P40_37325.jpg?sign=1739565724-3g5fy6LS0WyU16exoZ7DmMDG1agNr6G0-0-b75f0c1e0e0cc1b97b379dbe177b18b6)