JavaScript 中带下划线的数字文字

Ran*_*ner 11 javascript numbers ecmascript-2021

我最近遇到了这段代码,我想知道在 JavaScript 中使用或不使用下划线编写这些数字文字是否有任何区别:

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

let number2 = 123_4567_890;
console.log(number2);
Run Code Online (Sandbox Code Playgroud)

Ran*_*ner 14

因此,在进一步阅读之后,我发现ECMAScript 2021有一个称为数字分隔符的新功能,该功能用于较大的数字,如果不分隔它们就很难读取。

为了提高可读性,此功能启用下划线作为数字文字中的分隔符,如以下所有类型数字文字的示例所示:

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);  
Run Code Online (Sandbox Code Playgroud)

有关数字分隔符的更多信息可以在这里找到:https ://v8.dev/features/numeric-separators

或者在这里https://writingjavascript.com/what-are-numeric-separators


Eld*_* B. 11

数字分隔符的目的是在处理大数字时以视觉方式帮助开发人员。它们不会改变实际的代码或其含义。