Separadores Numéricos
Literais numéricos grandes são difíceis para o olho humano interpretar rapidamente, especialmente quando há muitos dígitos repetidos:
1000000000000
1019436871.42
Para melhorar a legibilidade, uma nova funcionalidade da linguagem JavaScript permite sublinhados como separadores em literais numéricos. Assim, o exemplo acima agora pode ser reescrito para agrupar os dígitos por milhar, por exemplo:
1_000_000_000_000
1_019_436_871.42
Agora é mais fácil perceber que o primeiro número é um trilhão, e o segundo número é da ordem de 1 bilhão.
Separadores numéricos ajudam a melhorar a legibilidade para todos os tipos de literais numéricos:
// Um literal inteiro decimal com seus dígitos agrupados por milhar:
1_000_000_000_000
// Um literal decimal com seus dígitos agrupados por milhar:
1_000_000.220_720
// Um literal inteiro binário com seus bits agrupados por octeto:
0b01010110_00111000
// Um literal inteiro binário com seus bits agrupados por nibble:
0b0101_0110_0011_1000
// Um literal inteiro hexadecimal com seus dígitos agrupados por byte:
0x40_76_38_6A_73
// Um literal BigInt com seus dígitos agrupados por milhar:
4_642_473_943_484_686_707n
Eles até funcionam para literais inteiros octais (embora eu não consiga pensar em um exemplo onde os separadores sejam úteis para tais literais):
// Um separador numérico em um literal inteiro octal: 🤷♀️
0o123_456
Observe que o JavaScript também tem uma sintaxe legada para literais octais sem o prefixo explícito 0o
. Por exemplo, 017 === 0o17
. Essa sintaxe não é suportada no modo estrito ou dentro de módulos, e não deve ser usada em código moderno. Consequentemente, separadores numéricos não são suportados para esses literais. Use literais no estilo 0o17
em vez disso.