重新分配变量和重新定义之间的性能差异

时间:2012-07-16 03:53:55

标签: javascript variables

在Javascript中哪种风格更适合性能?

STYLE1

var x = ''
for(var i = 0 ; i < arr.length ; i ++){
    x = ....
    //do something with x
 }

蓝紫魅力

for(var i = 0 ; i < arr.length ; i ++){
    var x = ....
    //do something with x
 }

2 个答案:

答案 0 :(得分:5)

JavaScript没有其他语言的块范围,只有函数范围。这意味着在实践中,JS引擎会将代码的第一个版本解释为:

var i, x = '';    
for(i = 0 ; i < arr.length ; i ++){
    x = ....
    //do something with x
}

第二个版本完全相同,只是没有为''分配默认x值:

var i, x;    
for(i = 0 ; i < arr.length ; i ++){
    x = ....
    //do something with x
}

因此,在我看来,“样式1”是不好的做法,因为您指定了一个从未使用过的值。但我认为“风格2”更糟糕,因为它暗示了不存在的块范围。

至于哪个表现更好,没有测试,我希望两者对任何现代JS引擎都差不多。

答案 1 :(得分:0)

由于javascript中提供了范围链性能调整,我总是建议尽可能多地使用局部变量。 有关详细信息,请阅读http://blogs.msdn.com/b/jscript/archive/2007/07/26/scope-chain-of-jscript-functions.aspx