數字分隔符號

發佈於 · 標記為 ECMAScript ES2021

對於人眼來說,很難快速解析大型數字文字,尤其是在有許多重複數字時

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 類型的文字。

數字分隔符號支援 #