中间变量——性能成本是多少?

Intermediary variables - what's the performance cost?

const scrollPercent = getScrollPercent();
const mainDivHeight = (mainDivRef.current as any).offsetHeight;
const imgHeight = (imgRef.current as any).offsetHeight;

const offset = ((imgHeight - mainDivHeight) * scrollPercent) / 100;

setBgrImgStyle(x =>
    Object.assign({}, x, { transform: `translateY(-${offset}px)` })
);

如上所示,我们有很多 const 声明只使用一次,这意味着它们可以简单地内联。

我经常这样做以提高可读性,有时可能太多了。

性能成本是多少?上面的代码是 JS,不过我很乐意收到与语言无关的答案。

在将操作置于循环中被调用数十万次的过程中之前,不要担心性能提升很小。在那之前,请专注于代码的清晰度。如果某件事没有发生数千次,那不是问题。也许你可以使用 https://jsperf.com,但如果你真的关心的话。

在真实的现代世界?

可能none。

大多数应用程序无论如何都会打包 JS,并对其进行丑化。如果你不这样做,你应该这样做,因为它减少了你的负载,并且有一个额外的好处,让你的例子变得无关紧要。

一个简短的例子:

var get = function(information){
   var name = information.Name;

   if (name == 'john'){var get=function(n){if("john"==n.Name)return!1};
     return false;
   }    
}

缩减为:

var get=function(n){if("john"==n.Name){return!1}};

如果你所做的只是制作更具可读性的代码,Webpack/uglification 或其他任何东西都可能会看到这一点并为你做出必要的调整。

所以担心代码的可读性和功能性。当您发现实际性能问题时,请担心性能。