web-dev-qa-db-ja.com

jsで「var」が必要になるのはいつですか?

重複の可能性:
JavaScriptでvarを使用する場合と使用しない場合の違い

いつか、私は人々がこれをしているのを見ました

for(var i=0; i< array.length; i++){
 //bababa

}

しかし、私はまた、これをしている人々を見ます...

for(i=0; i< array.length; i++){
 //bababa

}

2つの違いは何ですか?ありがとうございました。

34
Tattat

varキーワードが「必要」になることはありません。ただし、これを使用しない場合、宣言している変数はグローバルスコープで公開されます(つまり、windowオブジェクトのプロパティとして)。通常、これはあなたが望むものではありません。

通常、変数を現在のスコープにのみ表示する必要があります。これは、varが行うことです。現在のスコープでのみ変数を宣言します(ただし、「現在のスコープ」が「グローバルスコープ」と一致する場合もあります。その場合、varを使用する場合とvarを使用しない場合で違いはありません)。

コードを書くときは、次の構文を使用する必要があります。

for(var i=0; i< array.length; i++){
    //bababa
}

または、必要な場合は、次のようにします。

var i;
for(i=0; i< array.length; i++){
   //bababa
}

このようにする:

for(i=0; i< array.length; i++){
   //bababa
}

...グローバルスコープにiという変数を作成します。他の誰かがたまたまグローバルi変数を使用している場合は、その変数を上書きしただけです。

60
aroth

技術的には、これを使用する必要はありません。javascriptは、事前に宣言しなくても変数を使用して、陽気に進行します。

ただし、実際には、変数を宣言するときは常にそれを使用する必要があります。これにより、コードが読みやすくなり、混乱を避けるのに役立ちます。特に、同じ名前でスコープが異なる変数を使用している場合はそうです。

var n = 23;
function functThat( )
{
   var n = 32; // "local" scope
}
0
Muad'Dib