-1

哪种风格更适合 Javascript 的性能?

风格1

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

风格2

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

2 回答 2

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 引擎几乎相同。

于 2012-07-16T04:12:51.137 回答
0

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

于 2012-07-16T04:01:51.130 回答