在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
}
答案 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。