Eva*_*and 9 javascript syntax scientific-notation
这个问题不是寻求开发人员代码格式化意见.就个人而言,我更喜欢在我的JS代码中使用科学记数法,因为我相信它更具可读性.对我来说,6e8更具可读性600000000.话虽这么说,我只是在寻找JS中用科学记数法指定数字的潜在风险和缺点.我不经常在野外看到它,并且想知道是否有技术推理,或仅仅是因为开发人员的笨蛋.
你不会“经常在野外”看到科学记数法,因为在 JS 中实际输入的唯一数字往往是常量:
\n\n这些都没有从科学记数法中受益太多。
\n\n我将Plank 的常量“在野外”视为:
\n\nconst h = 6.62607004e-34;\r\nconsole.log(\'Plank\', h);Run Code Online (Sandbox Code Playgroud)\r\n它通常有意义的另一个地方是时间限制,例如一天中的毫秒数864e5。例如:
function addDaysToDate(date, days) {\r\n if (days === 0)\r\n return date;\r\n date.setTime(864e5 * days + date.valueOf());\r\n return date;\r\n}\r\n\r\nconst now = new Date();\r\nconst thisTimeTomorrow = addDaysToDate(now, 1);\r\nconsole.log(\'This time tomorrow\', thisTimeTomorrow);Run Code Online (Sandbox Code Playgroud)\r\n我认为没有任何技术原因不使用这种表示法,更多的是开发人员根本避免对数字进行硬编码。
\n\n我不认为有任何风险。您可能必须小心字符串中的数字,但如果您这样做,那么此语法的问题比数字本地化要小得多(例如,DE 用户输入"20.000,00"、 期望2e4,但2e6由于不变的数字格式而得到交换千位和小数分隔符)。
我要补充的是,JS 无论如何都会默认为小数字输出该语法,但在一定程度上避免大数字(这因浏览器而异):
\n\nconsole.log(\'Very small\', 1234 / 100000000000)\r\nconsole.log(\'Large, but still full in some browsers\', 1e17 * 1234)\r\nconsole.log(\'Large, scientific\', 1e35 * 1234)Run Code Online (Sandbox Code Playgroud)\r\n| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |