因此,我对 JavaScript 编码相当陌生,尽管对一般编码而言并不陌生。在编写源代码时,我通常会考虑我的代码将在其中运行的环境(例如某种虚拟机) - 以及可以预期的代码优化级别。(1)
例如,在 Java 中,我可能会写这样的东西,
Foo foo = FooFactory.getFoo(Bar.someStaticStuff("qux","gak",42);
blub.doSomethingImportantWithAFooObject(foo);
即使该foo
对象仅在该位置使用(因此引入了不必要的变量声明)。首先,我认为上面的代码比内联版本更易读
blub.doSomethingImportantWithAFooObject(FooFactory.getFoo(Bar.someStaticStuff("qux","gak",42));
其次,我知道 Java 编译器代码优化无论如何都会处理这个问题,即实际的 Java VM 代码最终会被内联 - 所以在性能方面,两者之间没有区别。(2)
现在到我的实际问题:
我通常可以在 JavaScript 中期望什么级别的代码优化?
我认为这取决于 JavaScript 引擎——但由于我的代码最终会在许多不同的浏览器中运行,所以我们只做最坏的假设,看看最坏的情况。我可以期待适度的代码优化吗?我还需要担心哪些情况?
(1) 我确实意识到找到好的/最好的算法和编写组织良好的代码比一些代码优化更重要,并且对性能的影响更大。但这将是一个不同的问题。
(2) 现在,我意识到没有优化的实际差异很小。但那是无关紧要的。有一些很容易优化的功能非常有效,我只是懒得写一个。想象一下上面的代码片段在一个for
被称为 100'000 次的循环中。