This post covers a feature of numeric operators
introduced in the latest JavaScript ECMAScript 2021.
These are only cosmetic changes in how we read the literal and numbers.
Numeric operators apply to numbers
or literal
allowing developers to read them by separating a group of digits with .
, _
(underscore) symbol used as a separator.
For example,
if you are defining the number as One million as seen below
let result=1000000;
It is hard to read the number whether is one million or one lack thousand number.
The same number can be separated with _ as per your convenience in ES12.
let result=10_00_000;
Valid Numeric separators:
Numeric separators are applied to number,float, binary, hex, octal and bigint literal types
Here is an example of floating literal
const floatNumber=10.23; // 10^10000
And also applied to fraction and exponent parts.
const exponentNumber=1e2_000; // 10^10000
Here are Hexa, octal, and binary literals example
const binaryNumber= 0b1110_0001_1010_0101; // binary number separation
const hexaNumber = 0xB1_C8_D1;
const octalNumber = 0o45_23_12;
big numbers in JavaScript represented in BigInt type
bigint numbers separated with numeric operators.
let TwoTrillion = 2_000_000_000_000n;
The following are invalid separators that throws an error
const floating1 = 4.54_35_; // SyntaxError
const invalid_separator = _1_000_000; // ReferenceError
Notes:
- _ applies to any digits between the numbers only.
- Starting and Ending digits can not be applied underscore.
- numeric digits are not separated not immediately before n in bigint literal types.