javascript从es2021起支持下划线作为数值字面量分隔符,提升可读性而不改变值;适用于十进制、二进制(0b)、八进制(0o)、十六进制(0x)及科学计数法,但不可在开头、结尾、连续出现、紧邻小数点、进制前缀或指数符号e/e旁。

JavaScript 从 ES2021(ECMAScript 2021)开始支持在数字字面量中使用下划线 _ 作为分隔符,用来提升大数字的可读性。它不会影响数值本身,只是一种书写语法糖。
哪些数字类型支持下划线?
下划线可以出现在整数、小数、二进制、八进制、十六进制以及指数形式的数字中,但有明确规则:
- 不能出现在开头或结尾(如
_100或100_是非法的) - 不能连续出现(如
1__000不合法) - 不能紧邻小数点(如
3._14或3.14_不合法;但3.1415_926合法) - 不能出现在
e或E的两侧(如1e_3或1_e3不合法;但1e3_000合法)
常见实用写法示例
用下划线按千位、字节、位宽等习惯分组,让意图更清晰:
-
1_000_000—— 一百万,比1000000更易识别 -
0xFF_FF_00_00—— 颜色值或内存地址,按字节分组 -
0b1010_1100_0001_1111—— 二进制位模式,每 4 位一组符合十六进制阅读习惯 -
3.1415_9265_3589_793—— 圆周率,按四位分组便于核对 -
1e6_000—— 表示10⁶⁰⁰⁰,虽不常用但语法允许
注意事项与兼容性
下划线只是源码层面的写法,运行时完全被忽略,1_000 === 1000 为 true。但需注意:
- 旧版 JavaScript 引擎(如 IE、Node.js
- JSON 格式不支持下划线(
{ "num": 1_000 }是无效 JSON) - 字符串转数字(如
Number("1_000"))仍会失败,下划线仅适用于字面量,不适用于字符串解析
编辑器与工具支持
主流编辑器(VS Code、WebStorm 等)已支持高亮和校验;ESLint 可通过 no-invalid-this 类规则配合 parser 选项识别非法下划线用法;TypeScript 4.0+ 完全支持并提供精准类型推导。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











