JavaScript数字分隔符\_专为人类阅读设计,提升长数字可读性且不改变值或运算逻辑;支持十进制、二进制、十六进制、小数及科学计数法,仅作视觉断点,解析时被完全忽略。

JavaScript 引入数字分隔符(_)不是为了改变数字的值或运算逻辑,而是专为**人类阅读**服务——它让长数字一眼可辨,大幅降低误读风险。
解决大数字“一眼看花”的问题
没有分隔符时,一串连续数字极易看错位数,比如 1000000000 是十亿还是十亿零一万?人眼需要逐位数数。加下划线后写成 1_000_000_000,天然按千位分组,和日常书写习惯(如 1,000,000,000)对齐,大脑无需额外解析。
支持多种进制与科学计数法
分隔符不限于十进制整数,也适用于:
- 二进制:
0b1010_1100_0001_1111 - 十六进制:
0xFF_FF_00_FF - 小数:
3.1415926535_89793 - 科学计数法:
6.022_140_76e23
每种场景下,下划线都只起视觉断点作用,引擎会完全忽略它,不影响计算精度或类型判断。
立即学习“Java免费学习笔记(深入)”;
规则简单,但必须用对位置
下划线不能出现在开头、结尾,也不能连续出现,更不能紧邻小数点或指数符号:
- ✅ 合法:
123_456、0x_A1_B2、1e10_000 - ❌ 非法:
_123、123_、12__34、1._23、1e_10
违反规则会直接报语法错误,所以编辑器通常能实时提示。
不改变运行行为,只优化开发体验
所有含下划线的数字字面量,在解析后和原始数字完全等价:1_000_000 === 1000000 返回 true;typeof 0xFF_FF 仍是 "number"。它纯粹是源码层面的“可读性糖”,编译/解释过程自动剥离,无性能损耗,也无兼容性陷阱(ES2021 起已广泛支持)。











