javascript的number类型内存中统一为ieee 754双精度浮点数,源码支持十进制(默认)、二进制(0b/0b)、八进制(0o/0o)、十六进制(0x/0x)字面量,运行时均转为十进制数值,输出可用tostring(radix)指定进制。

JavaScript 的 Number 类型本身不区分进制,所有数字在内存中都以 IEEE 754 双精度浮点数形式存储;但源码中可以用不同进制的字面量来表示同一个数值,JS 引擎会自动将其转换为十进制数值。
十进制(默认)
最常用,无需前缀。整数、小数、科学计数法都属于十进制表示。
-
42→ 十进制 42 -
-12.5→ 十进制 -12.5 -
3.14e2→ 十进制 314
二进制(以 0b 或 0B 开头)
ES6 引入,只支持整数,字母不区分大小写。
-
0b1010→ 十进制 10 -
0B11111111→ 十进制 255 -
0b-101是语法错误,负号需放在前面:-0b101→ -5
八进制(以 0o 或 0O 开头)
ES6 正式引入的严格八进制写法;注意不是 0 开头(老式写法已废弃且在严格模式下报错)。
-
0o755→ 十进制 493 -
0O10→ 十进制 8 -
08或09在严格模式下会报 SyntaxError
十六进制(以 0x 或 0X 开头)
大小写字母均可,常用于颜色值、位操作等场景。
-
0xFF→ 十进制 255 -
0xaef→ 十进制 2799 -
-0x10→ 十进制 -16
所有进制字面量在运行时都会被转成统一的 Number 值,typeof 和 Number.isInteger() 等判断与进制无关。打印或转换为字符串时,默认用十进制,如需其他进制输出,可用 .toString(radix) 方法,例如 (255).toString(16) 返回 "ff"。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











