这个问题是not寻求开发人员代码格式化意见。就我个人而言,我更喜欢在 JS 代码中使用科学计数法,因为我相信它更具可读性。为我,6e8
比600000000
。话虽这么说,我只是在寻找在 JS 中以科学记数法指定数字的潜在风险和缺点。我在野外并不经常看到它,想知道这是否有技术原因,或者仅仅是因为开发人员的鼓吹。
你看不到科学计数法“经常在野外”因为在 JS 中实际输入的唯一数字往往是常量:
- 以代码为中心的常量(例如枚举和级别)往往很小。
- 物理/数学常数(例如 π 或 e)往往是高度具体的。
这些都没有从科学记数法中受益太多。
我见过普朗克常数 https://en.wikipedia.org/wiki/Planck_constant“在野外”为:
const h = 6.62607004e-34;
console.log('Plank', h);
另一个经常有意义的地方是时间限制,例如一天中的毫秒数864e5
。例如:
function addDaysToDate(date, days) {
if (days === 0)
return date;
date.setTime(864e5 * days + date.valueOf());
return date;
}
const now = new Date();
const thisTimeTomorrow = addDaysToDate(now, 1);
console.log('This time tomorrow', thisTimeTomorrow);
我认为没有任何技术原因不使用这种表示法,更多的是开发人员根本避免对数字进行硬编码。
我不认为有任何风险。您可能必须小心字符串中的数字,但如果您这样做,那么此语法的问题比数字本地化要小得多(例如 DE 用户输入"20.000,00"
, 期待2e4
,但是得到2e6
由于不变的数字格式交换了千位和小数分隔符)。
我要补充的是,JS 无论如何都会默认为小数字输出该语法,但在一定程度上避免大数字(这因浏览器而异):
console.log('Very small', 1234 / 100000000000)
console.log('Large, but still full in some browsers', 1e17 * 1234)
console.log('Large, scientific', 1e35 * 1234)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)