哪种风格更适合 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
}
哪种风格更适合 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
}
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 引擎几乎相同。
由于 javascript 中可用的范围链性能调整,我总是建议尽可能使用局部变量。阅读http://blogs.msdn.com/b/jscript/archive/2007/07/26/scope-chain-of-jscript-functions.aspx了解更多信息。