9

I recently ran into this code and i was wandering if there is any difference of writing those numeric literals in JavaScript with or without underscores:

let number = 1234567890;
console.log(number);

let number2 = 123_4567_890;
console.log(number2);
Ran Turner
  • 14,906
  • 5
  • 47
  • 53
  • Does this answer your question? [Is there a Javascript equivalent to the Ruby syntax using underscores (e.g. 10_000 = 10000) to make larger integers human readable?](https://stackoverflow.com/q/20350106/6045800) – Tomerikoo Oct 11 '21 at 17:59

2 Answers2

11

So after further reading, I see that ECMAScript 2021 has a new feature called Numeric separators which is used for larger numbers that are hard to read without separating them..

To improve readability, this feature enables underscores as separators in numeric literals as you can see in the following example for all kinds of numeric literals:

const readableMiliion = 1_000_000;
const regularMiliion = 1000000;

console.log(readableMiliion);
console.log(regularMiliion);     

const decimal = 1_000_000.220_720;
const binary = 0b01010110_00111000;
const hexa = 0x40_76_38_6A_73;

console.log(decimal);  
console.log(binary);  
console.log(hexa);  

More about Numeric separators can be found here: https://v8.dev/features/numeric-separators

Or here https://writingjavascript.com/what-are-numeric-separators

Ran Turner
  • 14,906
  • 5
  • 47
  • 53
9

The point of the Numeric Seperators is to visually aid developers when dealing with big numbers. They don't change the actual code or its meaning.

Electric Coffee
  • 11,733
  • 9
  • 70
  • 131
Eldar B.
  • 1,097
  • 9
  • 22