长方程与覆盖变量

Jam*_*mie 2 javascript

所以我有一个相对较长的(在文本编辑器中)方程式,并且想知道最好是这样保持它还是重写它作为写入变量?有性能差异吗?

((((hoursPerWeek * (100 - percentageLoaded)) * (motorKw * 1.25) * 0.35) * 50) * (pencePerKwh / 100)) / 100
Run Code Online (Sandbox Code Playgroud)

Str*_*ior 5

我不会"覆盖"变量(如重用相同的命名变量来代表代码中不同点的不同值),但我肯定会建议将计算分解为适合其目的的变量.

var percentageNotLoaded = 100 - percentageLoaded;
var unusedPerWeek = hoursPerWeek * percentageNotLoaded;
// etc...
Run Code Online (Sandbox Code Playgroud)

性能不会有可测量的差异.JIT编译器很可能会优化变量本身以使用CPU寄存器和内存加载,就像在原始代码中一样.即使它没有,我也非常怀疑这个计算是在JavaScript代码中经常进行的,它会代表性能瓶颈.正如其他评论者所指出的那样,最好首先关注可读性,并且只有在成为可测量问题时才会担心性能问题.