Separadores numéricos
Los literales numéricos grandes son difíciles de interpretar rápidamente para el ojo humano, especialmente cuando hay muchos dígitos repetidos:
1000000000000
1019436871.42
Para mejorar la legibilidad, una nueva característica del lenguaje JavaScript permite guiones bajos como separadores en literales numéricos. Por lo tanto, lo anterior ahora puede reescribirse para agrupar los dígitos por miles, por ejemplo:
1_000_000_000_000
1_019_436_871.42
Ahora es más fácil notar que el primer número es un billón, y el segundo número está en el orden de mil millones.
Los separadores numéricos ayudan a mejorar la legibilidad para todo tipo de literales numéricos:
// Un literal entero decimal con sus dígitos agrupados por miles:
1_000_000_000_000
// Un literal decimal con sus dígitos agrupados por miles:
1_000_000.220_720
// Un literal entero binario con sus bits agrupados por octeto:
0b01010110_00111000
// Un literal entero binario con sus bits agrupados por nibble:
0b0101_0110_0011_1000
// Un literal entero hexadecimal con sus dígitos agrupados por byte:
0x40_76_38_6A_73
// Un literal BigInt con sus dígitos agrupados por miles:
4_642_473_943_484_686_707n
Incluso funcionan para literales enteros octales (aunque no puedo pensar en un ejemplo donde los separadores aporten valor a tales literales):
// Un separador numérico en un literal entero octal: 🤷♀️
0o123_456
Tenga en cuenta que JavaScript también tiene una sintaxis heredada para literales octales sin el prefijo explícito 0o
. Por ejemplo, 017 === 0o17
. Esta sintaxis no es compatible en modo estricto ni dentro de módulos, y no debería usarse en el código moderno. En consecuencia, los separadores numéricos no son compatibles con estos literales. Utilice literales con el estilo 0o17
en su lugar.