DEV Community

loading...
Cover image for Numeric Separators in JavaScript

Numeric Separators in JavaScript

suprabhasupi profile image Suprabha ・1 min read

Numeric Separators give us the ability to separate thousands with an underscore (_) in numeric literals.

How it’s useful❓

It makes our code more informative and readable.

let series = 10000;
Enter fullscreen mode Exit fullscreen mode

Numeric Separators in javascript, enables underscore as a separator in numeric literals to improve readability.

Example:

let series = 1_00_00;
Enter fullscreen mode Exit fullscreen mode

You can also use this for binary, octal, and hex numbers.

Binary Number πŸ‘»

let series1 = 0b1010_0101_1001;
console.log(series1); // 2649
Enter fullscreen mode Exit fullscreen mode

Octal Number: πŸ‘»

let series2 = 0o2_3_5_7;
console.log(series2); // 1263
Enter fullscreen mode Exit fullscreen mode

Hex Number: πŸ‘»

let series3 = 0xA_B_C_D_E;
console.log(series3); // 703710
Enter fullscreen mode Exit fullscreen mode

Few Limitation πŸ€¦β€β™€οΈ

Below limitation snippet will throw SyntaxError

  1. More than one underscore in a row is not allowed

    let series1 = 100__000;
    
  2. Can not be used after leading 0

    let series2 = 0_1;
    
  3. Not allowed at the end of numeric literals

    let series3= 100_;
    

Browser Support πŸŽ—

This feature has pretty good support in recent versions of browsers.

Check this out πŸ‘‡

browser support for numeric separators

Reference 🧐

🌟 Twitter πŸ‘©πŸ»β€πŸ’» Suprabha.me 🌟 Instagram

Discussion (2)

pic
Editor guide
Collapse
lionelrowe profile image
lionel-rowe • Edited

Usually you'd use them where you'd use commas, dots, or spaces, depending on region, in prose. So every 3 decimal digits in the thousand/million/billion convention (10_000_000), or every 2-3 in the thousand/crore/lakh convention (1_00_00_000).

For hex, delimiting every 2 digits splits neatly into bytes (0xff_00_ff), or for binary you could split into groups of 4 to give "nibbles" - half a byte, equivalent to 1 hex digit each (0b1010_1010).

Collapse
nguyenit67 profile image
nguyenit67

wouldn't know about this until now!