6. 字面量表示
以 JavaScript 语言为例
1. 十进制 Decimal
常规数字。如下:
当以 0 开头时,需要注意:若数字有 ≥8 的,就默认是十进制的;但如果数字全是<8 的,则会被当成八进制来解析。如下:
科学记数法的形式,也称指数字面量。格式是beN
,其中 b 是尾数(可以是整数或浮点数),字符e/E
表示分隔符或指数指示符,N 是指数(有符号的整数)。如下:
2. 二进制 Binary
字面量以 0b
或者 0B
开头,这是 ECMAScript 2015 中的新语法。如下:
如果 0b/0B
后面的值不是 0 和 1,会报语法错误:
3. 八进制 Octal
字面量以 0o
或者 0O
开头,这是 ECMAScript 2015 中的新语法。如下:
再就是前面“十进制”里提到的,以 0 开头的情况。即便“看起来”是十进制的数字,但如果它们都 <8(即在 0~7 之间)是会被当成八进制来解析的。如下:
若 0o/0O
后面的值不是 0~7,会报语法错误:
4. 十六进制 Hexadecimal
字面量以 0x
或者 0X
开头,后跟 0~F。如下:
若 0x/0X
后面的值不是 0~F,会报语法错误:
5. 总结
这部分内容比较直观,大约就是所见即所得。对我们的启示就是:
在写进制的时候,前缀
0b/0o/0x
最好不要省略若是接口返回来的十进制数据,如有必要,保险起见可以手动处理下开头的 0
最后简单提下,Number 类型的字面量如果都在后面加个字符 n
就是 BigInt 类型的了。如下:
唯一不同的就是在 BigInt 里 0755n
不会被当成八进制,因为前缀 o/O
不能省。如下:
6. 主要参考
Last updated