为什么从JavaScript中的数字中删除“ _”?

拉贾特·米什拉(Rajat Mishra)

我尝试在Chrome控制台中输入以下代码:

var a = 16_11;

它不在"之内'输出的a是1611而不是16_11。为什么_要删除?

控制台输出

妮娜·斯科茨(Nina Scholz)

您得到了一个数字分隔符,这是一个建议,并且在V8 v7.5 / Chrome 75中已实际发货。

此功能使开发人员可以通过在数字组之间创建可视分隔来使其数字文字更具可读性。大数字文字很难使人眼快速解析,特别是当数字重复很长时。这会损害获得正确值/数量级的能力。

1000000000   // Is this a billion? a hundred millions? Ten millions?
101475938.38 // what scale is this? what power of 10?

...但是也无法传达一些用例信息,例如使用整数的定点算法。例如,财务计算通常使用4到6位定点算术,但是即使没有文字分隔符,将金额存储为美分也不会立即显而易见:

const FEE = 12300;
// is this 12,300? Or 123, because it's in cents?

const AMOUNT = 1234500;
// is this 1,234,500? Or cents, hence 12,345? Or financial, 4-fixed 123.45?

使用下划线(_,U + 005F)作为分隔符有助于提高数字文字的可读性,包括整数和浮点数(在JS中,无论如何都是浮点数):

1_000_000_000           // Ah, so a billion
101_475_938.38          // And this is hundreds of millions

let fee = 123_00;       // $123 (12300 cents, apparently)
let fee = 12_300;       // $12,300 (woah, that fee!)
let amount = 12345_00;  // 12,345 (1234500 cents, apparently)
let amount = 123_4500;  // 123.45 (4-fixed financial)
let amount = 1_234_500; // 1,234,500

同样,这也适用于小数和指数部分:

0.000_001 // 1 millionth
1e10_000  // 10^10000 -- granted, far less useful / in-range...

其他来源:

var a = 1_000;

console.log(a);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在regex.ReplaceAllString()中删除数字

为什么两个不同的数字在JavaScript中相等?

在JavaScript中,为什么+ [1.5]被认为是数字?

测试大写,为什么在JavaScript中toUppercase()字母数字?

为什么JavaScript中[]!== []?

为什么删除无法在JavaScript中的数组上工作?

为什么添加“{”“}”会从数组中删除括号?(JavaScript)

从JavaScript中的数字中删除前导零

为什么Javascript将字符串中的数字转换为数字?

为什么我们需要外部旋转按钮从数字中删除箭头

为什么没有删除该列表中的最后一个数字?

为什么字段中的数字为零?

在TS中,为什么number [] [number] ===数字?

为什么.getIdentifier()从类中检索数字?

为什么在Python中不能像在JavaScript中那样连接字符串和数字?

在Javascript中,什么时候以及为什么数字乘以NaN,然后求值?

如何从JavaScript数字中删除小数部分?

从javascript数组中删除数字范围

为什么“\”在 JavaScript 中无效?

为什么(+)在Javascript中是隐含的?

为什么我不能从javascript中删除表中的一行?

为什么Java中的数字不是数字(NaN)?

为什么将ffmpeg从Debian中删除?

为什么无法在Raspbian中删除用户?

为什么不将其从集合中删除?

为什么Pandoc从div中删除.incremental?

为什么从...中删除......不出错?

为什么 performInsert() 从数组中删除字段?

为什么sed删除示例中的字符?