![现代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=1739318642-YQLrJGwyTk0yEnioL3iMP0R3A9Em6KAI-0-da0acca06bf6c841f65b842791330eb7)
在数值前添加前缀可以将其描述为八进制或十六进制的数值。八进制需要将0作为前缀,十六进制需要将0x作为前缀,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P39_67178.jpg?sign=1739318642-lBMFCzptqmzo0BaxKaINrit5cdy33OYK-0-c352e0a0cfbe7835ee1b260c37701051)
需要注意,很多编程语言并不介意数值量前面是否添加前缀0,JavaScript语言对这一点要求十分严格,多余的0会改变数值的进制方式,造成不可控的错误。
对于非常大或非常小的数值,JavaScript中也可以使用科学计数法进行描述,使用字母e来描述10的e次方,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P39_67180.jpg?sign=1739318642-kTnFMQfWogtXqp7cIUuv0C4eWcCbUJOw-0-1ac27d8ed26295fea08d4d3e3d4f01de)
JavaScript中还定义了一些特殊的数值,Number.MAX_VALUE和Number.MIN_VALUE分别用来表示Number类型所能表示的最大值与最小值,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P39_67181.jpg?sign=1739318642-xht45RezGXwTd1R7GUyBixiHUuKH5x8s-0-318ad79990e39b4043673a8cc0f7fd24)
当计算值超出了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=1739318642-onqS3pp06czWqWXyHyYxEBHw3cHUFn0v-0-6fb72b2642ab79a9739c89a9fa46c133)
JavaScript中定义的最后一个比较特殊的Number值为NaN,为Not a Number的缩写,表示不是一个数字。这个值在字符串向数字转换失败时会被返回,示例如下:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P40_67183.jpg?sign=1739318642-hlJUUh6X6h7k9khPs2Wit3cz4kY5r9UQ-0-2e96df4db214ae6af384b2a75c30fb68)
需要注意,NaN这个值十分特殊,其不可以进行计算也不可以进行比较,并且与其自身也不相等,例如如下的比较将会返回false:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P40_69023.jpg?sign=1739318642-wjhHH2Y4HJFkqBN9SBx0hx88oFP3AfXQ-0-de9cdfcccf3c4e46cc5f3af8f7726f30)
如果要判断一个变量的值是否是NaN,需要使用如下方法:
![](https://epubservercos.yuewen.com/534FF6/15253386804113806/epubprivate/OEBPS/Images/Figure-P40_37325.jpg?sign=1739318642-ZmqbzgN2jWL0allJY81mHu6TRvGIRTaj-0-b832ccbe3724008b886c476b89c4a496)