数字字面量
• 这里的数字就是数学意义上的数字。
• 数字字面量区分:整数字面量、浮点数字面量(小数)、特殊值。
• 书写时直接书写字面量,不需要添加任何辅助符号。
JavaScript 数值始终是 64 位的浮点数,JavaScript 数值始终以双精度浮点数来存储,根据国际 IEEE 754 标准。
整数
整数字面量写法区分进制。可以被表示成十进制、八进制以及十六进制。在进行算术计算时或者参与程序,所有八进制和十六进制的数字都会被转换成十进制。
十进制
十进制最基本的数值字面量格式,基数为10。逢十进一,每个位数只能是0-9之间的数字。
八进制
八进制字面量必须带前导0、0O、0o。基数为8。逢八进一,每个位数只能是0-7之间的数字。(如果以0开头,每个位数上有超过0-7之间的数字出现,也就是8/9,强制忽视前面的0,直接将后面数字当做十进制)
下面是八进制转十进制的方法:
0O011 = 0 * 8^2 + 1 * 8^1 + 1 * 8^0 = 9
十六进制
十六进制字面量必须带前缀0x和0X。基数为16。逢十六进一,每个位数只能是数字0-9、字母a-f或A~F。
下面是十六进制转十进制的方法:
0x01000 = 0 * 16^0 + 0 * 16^1 + 0 * 16^2 +1 * 16^3 + 0 * 16^4 = 4096
浮点数
数学概念中的小数,浮点数不区分进制,所有的浮点数都是十进制下的数字。
注意:如果浮点数是大于0小于1的,可以省略小数点前面的0不写。
浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数。
例如:0.1+0.2;结果不是0.3,而是:0.30000000000000004
Infinity 无穷
Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。
Infinity本身就是一个数字。
- 最小值:Number.MIN_VALUE,这个值为: 5e-324
- 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
- 无穷大:Infinity
- 无穷小:-Infinity
NaN 非数值
• NaN:not a number表示不是一个正常的数,但是还是一个 Number 类型的数字。这个数字 没办法用前面的表示方法表示。
• NaN与任何值都不相等,包括他本身。
• isNaN():判断一个数据是不是一个NaN。