對於人眼來說,很難快速解析大型數字文字,尤其是在有許多重複數字時
1000000000000
1019436871.42
為了提高可讀性,一項新的 JavaScript 語言功能啟用了數字文字中的底線作為分隔符號。因此,上述內容現在可以改寫為將數字每千位分組,例如
1_000_000_000_000
1_019_436_871.42
現在可以更容易地看出第一個數字是兆,而第二個數字的順序是 10 億。
數字分隔符號有助於改善所有種類數字文字的可讀性
// A decimal integer literal with its digits grouped per thousand:
1_000_000_000_000
// A decimal literal with its digits grouped per thousand:
1_000_000.220_720
// A binary integer literal with its bits grouped per octet:
0b01010110_00111000
// A binary integer literal with its bits grouped per nibble:
0b0101_0110_0011_1000
// A hexadecimal integer literal with its digits grouped by byte:
0x40_76_38_6A_73
// A BigInt literal with its digits grouped per thousand:
4_642_473_943_484_686_707n
它們甚至適用於八進位整數文字(儘管 我想不出一個範例說明分隔符號對此類文字有價值)
// A numeric separator in an octal integer literal: 🤷♀️
0o123_456
請注意,JavaScript 也有八進位文字的舊語法,沒有明確的 0o
前綴。例如,017 === 0o17
。此語法在嚴格模式或模組中不受支援,且不應在現代程式碼中使用。因此,這些文字不支援數字分隔符號。請改用 0o17
類型的文字。
數字分隔符號支援 #
- Chrome: 自版本 75 起支援
- Firefox: 自版本 70 起支援
- Safari: 自版本 13 起支援
- Node.js: 自版本 12.5.0 起支援
- Babel: 支援