声明了JS中的var和字符串的性能

Declared var vs string performance in JS

本文关键字:字符串 性能 var JS 中的 声明      更新时间:2023-09-26

简单介绍一下:虽然这样写代码更符合语义:

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

我想知道有一个声明的var对JS的性能有多大的开销,例如,与(更混乱的IMHO)相反:

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

这只是一个小的例子,但我试图思考这将如何影响一个大型应用程序的巨大代码库,有没有人有任何见解或性能数据的手?

由于没有通用的javascript -解释器,但有许多不同的,可能因实现而异。对于所有绩效问题:最好的办法是衡量它。计算循环前后的时间

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

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