Javascriptでのパフォーマンスには、どのスタイルが適していますか?
Style1
var x = ''
for(var i = 0 ; i < arr.length ; i ++){
x = ....
//do something with x
}
Style2
for(var i = 0 ; i < arr.length ; i ++){
var x = ....
//do something with x
}
Javascriptでのパフォーマンスには、どのスタイルが適していますか?
Style1
var x = ''
for(var i = 0 ; i < arr.length ; i ++){
x = ....
//do something with x
}
Style2
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
}
''
2 番目のバージョンは、デフォルト値をに割り当てていないことを除いてまったく同じです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を参照してください。