2012-01-15 11 views
2

可能性の重複:コードの場合
Why don't self-closing script tags work?
Difference between using var and not using var in JavaScript変数宣言でvarを使用する利点は何ですか?

、私はVARを使用して変数を宣言する必要はありませんが分かりました。次の両方が動作しています

これらの2つの違いは何ですか?

+3

ここを参照してください。http://stackoverflow.com/questions/1470488/difference-between-using-var-and-not-using -var-in-javascript – Daniel

+0

これはDanielによって指摘されたものとまったく同じです。 – hop

答えて

4

キーの違いは、varキーワードを使用しないと、ネストされた関数で変数を定義しても変数がグローバルになります。

varは、その変数のスコープを定義します。グローバルを使用するかどうかは、複数のスコープにまたがってオブジェクトを使用するかどうかによって異なりますが、グローバルスコープの汚染を減らす名前空間を使用することを強くお勧めします。

2

varキーワードを使用しない場合は、グローバル変数を宣言しています。それを使用する場合は、変数を現在のスコープ内で宣言しています。例えば

:あなたは基本的にグローバルスコープを汚染しているので、

function foo() { 
    o = new Object(); 
} 

foo(); 
alert(o); // you can access the o variable here 

これは非常に悪いです。これとは対照的に

function foo() { 
    // the o variable is accessible only inside the current scope which 
    // is the foo function 
    var o = new Object(); 
} 

foo(); 
alert(o); // error => o is not accessible here 

結論:常にvarキーワードを使用して、変数のスコープを指定します。あなたが任意の関数の外に広いJavaScriptでVARを使用する場合varを使用して

2

は機能

3

にローカル変数になり、それが

window.a 
と同じだ

var a 

ために重要ではありません

でも機能内

var aは関数のプライベート変数であり、ポイントはwindow.a(グローバル)

関連する問題