読みやすさはさておき...効率や機能の観点から、宣言をループの外側(私の練習)に配置するか、ループの内側(他のSOの投稿に見られる)に配置するかの違いがわかりません。または、そのことについては、なぜコード宣言がまったくないのですか?ここにいくつかの退化した例があります...以下にもっとコメントがあります。
A1:
var x;
for (i=0; i<10; i++){
x = i;
}
A2:
for (i=0; i<10; i++){
var x = i;
}
B1:
var i;
for (i=0; i<10; i++){
}
B2:
for (var i=0; i<10; i++){
}
C1:
var x;
var y;
C2:
var x, y;
読みやすさはさておき...B1とB2、C1とC2の間に違いはないと思いますが、A1とA2の効率や機能の違いには不安があります。また、同じ名前のグローバル変数との競合の可能性を排除するために関数で宣言を使用することを除いて、宣言にどのような利点があるのかわかりません。
編集:いくつかのセミコロンを追加しました
編集:最初の文の明快さ、機能を機能に変更
編集:私が作成した以下のコメントを支援するために、以下にいくつかのコードを追加します編集:コメント
<!doctype html>
<html>
<head>
<script type='text/javascript'>
var w = (function(){ // wrapper
alert('init');
function p(){ // private
alert('p');
w.b(); //needs prefix
}
return{
a: function(){ // public
alert('a');
p();
w.b(); // needs prefix
},
b: function(){ // public
alert('b');
}
};
})(); // execute immediately
</script>
<script type="text/javascript">window.onload=w.a;</script>
</head>
<body>
sequence of alerts will be 'init' 'a' 'p' 'b'
</body>
</html>