和其他编程语言不同,JavaScript不区分整数值和浮点数值,JavaScript中的所有数字均用浮点数值表示。然而需要注意的是,JavaScript中实际的操作则是基于32位整数。
当一个数字直接出现在JavaScript程序中,我们称之为数字直接量。JavaScript支持多种格式的数字直接量。
整型直接量
在JavaScript程序中,用一个数字序列表示一个十进制整数。
0
3
1000
除了十进制的整型直接量,JavaScript同样能识别十六进制值,所谓十六进制的直接量是指以‘0x’或‘0X’为前缀,其后跟随十六进制数串的直接量。十六进制值是0-9之间的数字和a-f之间的字母构成,字母a-f表示数字10-15.
0xff // 15*16+15=255(十进制)
尽管ECMAScript标准不支持八进制直接量,但JavaScript的某些实现可以允许采用八进制形式表示整数。八进制直接量以数字0开始,其后跟随一个由0-7之间的数字组成的序列。
0377 // 3*64+7*8+7=255(十进制)
由于某些JavaScript的实现支持八进制直接量,而有些不支持,因此最好不要使用以0为前缀的整型直接量,在ECMAScript 6 的严格模式下,八进制直接量是明令禁止的。
浮点型直接量
浮点型直接量可以含有小数点,他们采用的是传统的实数写法。一个实数由整数部分、小数点和小数部分组成。
此外,还可以使用指数记数法表示浮点型直接量,即在实数后跟字母e或E,后面再跟正负号,其后再加上一个整型的指数。这种计数方法表示的数值,是由前面的实数乘以10的指数次幂
例如:
3.14
.3333
6.02e23 // 6.02乘以10的23次幂
1.47E-32 // 1.47乘以10的-32次幂