在JS中声明var vs string性能

时间:2011-11-09 12:33:11

标签: javascript performance

快速简单:虽然编写类似代码的语义更为明确:

var b   = 'lorem';
var f   = 'ipsum';

for ( var i = 0; i < 1000; i++ )
{
    b   = b + f;
}

我想知道有多少声明var的开销会对JS的表现产生影响,例如,反对(混乱的恕我直言):

var b   = 'lorem';

for ( var i = 0; i < 1000; i++ )
{
    b   = b + 'ipsum';
}

这只是一个小例子,但我在考虑如何影响大型应用程序的庞大代码库,是否有人可以获得任何见解或性能数据?

2 个答案:

答案 0 :(得分:0)

由于没有通用的Javascript-Interpreter,但许多不同可能与实现不同。对于所有性能问题:最好的方法是衡量它。在循环之前和之后花点时间。

答案 1 :(得分:0)

我怀疑大多数现代JS解释器的区别应该是可以忽略不计的(考虑到变量f总是局部的,没有复杂的计算)。 我怀疑现代JS解释器(至少基于浏览器)会首先分析代码。我真的不希望他们“编译”代码以获得精确的结果(太复杂),但应该引入一定程度的优化,因此性能差异可以忽略不计。
对于更复杂的示例,其中string以更复杂的方式生成,差异应该是支持字符串文字。

这里我假设现代JS解释器总是有时间分析代码并为代码引入一些“廉价”优化