整数数值
整数字面量是一组数字,表示整数常数。可选前缀设置非十进制基:二进制( 0b 或 0B )、八进制( 0o 或 0O )、十六进制( 0x 或 0X )。单个数字( 0 )被视为十进制。在十六进制字面中,字母( a - f 或 A - F )通过表示值 10 到 15。
为了方面阅读,后面可能加上下划线(
_ )字符,这些下划线不会改变字面意思。- 下划线不允许出现在首位,如
_42 - 下划线不允许出现子末尾,如
42_ - 下划线不允许双连,如
4__2 - 下划线不允许出现在进制标识中,如
0_xBadFace
42 // 值 42
4_2 // 值 42
0600 // 值 600
0_600 // 值 600
0o600 // 八进制 600 (384)
0O600 // 八进制 600 (384)
0xBadFace // 十六进制 (195951310)
0xBad_Face // 十六进制 (195951310)
// 下面这种写法 JS 不支持,但是可以写成 0x67_7a_2f_cc_40_c6
0x_67_7a_2f_cc_40_c6 // 十六进制 (113774485586118)
浮点数
浮点字面量是浮点常数的十进制或十六进制表示。
十进制浮点数文字由整数部分(十进制数字)组成, 一个小数点,一个小数部分(小数数字),一个指数部分 (或者后接可选的符号和十进制数字)。整数部分或分数部分中的一个可以省略;一个小数点的部分可以省略; 或者指数部分可以省略。 指数值 exp 将尾数(整数和分数部分)乘以 10的经验值
为了方面阅读,后面可能加上下划线(
_ )字符,这些下划线不会改变字面意思。0. // 表示浮点数 0
72.40
072.40 // === 72.40
2.71828
1.e+0
6.67428e-1
1E6
1_5. // == 15.0
0.15e+0_2 // == 15.0
0x1p-2 // == 0.25
0x2.p10 // == 2048.0
0x1.Fp+0 // == 1.9375
0X.8p-0 // == 0.5
0X_1FFFP-16 // == 0.1249847412109375
0x15e-2 // == 0x15e - 2 (integer subtraction)
虚数
虚数表示复常数的虚部。它由一个整数或浮点字面值组成,其后跟一个 i 。虚数的值即为相应值整数或浮点数字面值乘以虚单位。
为了向后兼容,虚数字面量的整数部分由完全十进制数字(可能还有下划线)的数字被视为十进制整数,即使以前导 0 开头。
0i
0123i // == 123i for backward-compatibility
0o123i // == 0o123 * 1i == 83i
0xabci // == 0xabc * 1i == 2748i
0.i
2.71828i
1.e+0i
6.67428e-11i
1E6i
.25i
.12345E+5i
0x1p-2i // == 0x1p-2 * 1i == 0.25i