快速简单:虽然编写类似代码的语义更为明确:
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';
}
这只是一个小例子,但我在考虑如何影响大型应用程序的庞大代码库,是否有人可以获得任何见解或性能数据?
答案 0 :(得分:0)
由于没有通用的Javascript-Interpreter,但许多不同可能与实现不同。对于所有性能问题:最好的方法是衡量它。在循环之前和之后花点时间。
答案 1 :(得分:0)
我怀疑大多数现代JS解释器的区别应该是可以忽略不计的(考虑到变量f总是局部的,没有复杂的计算)。
我怀疑现代JS解释器(至少基于浏览器)会首先分析代码。我真的不希望他们“编译”代码以获得精确的结果(太复杂),但应该引入一定程度的优化,因此性能差异可以忽略不计。
对于更复杂的示例,其中string以更复杂的方式生成,差异应该是支持字符串文字。
这里我假设现代JS解释器总是有时间分析代码并为代码引入一些“廉价”优化