63

多分かなり簡単な質問。

JavaScriptのどこでvarキーワードを使用すればよいですか。それを使っているか、同じ効果がないように思えます(もちろん、私はまだ言語を学んでいます)

たとえば、これらは両方とも私には同じように見えます。

(function(){
  var a = "mundo"
  alert("Hola, " + a )
})()

(function(){
  a = "mundo"
  alert("Hola, " + a )
})()

しかしもちろん、違いが現れるもっと複雑な例があるはずです。

4

4 に答える 4

96

を使用するvarと、現在のスコープで変数をインスタンス化することになります。これにより、現在のスコープ内で、より高いスコープで同じ名前の変数にアクセスできなくなります。

最初の例では、「a」がインスタンス化され、関数スコープ内に設定されています。2番目の例では、「a」が不足しているため、関数スコープの外に設定されていますvar

var

var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A

なしvar

var a = "A";
(function(){
  a = "B"
  alert(a) //B
})()

alert(a) //B
于 2011-03-22T22:46:21.660 に答える
16

varの使用:

var a = 'world';   
myfunction = function(){
  var a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'world';

varを使用しない:

var a = 'world';   
myfunction = function(){
  a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'mundo'
于 2011-03-22T22:50:08.977 に答える
6

Javascriptオブジェクトスコープを更新する必要があると思います。

「var」キーワードを使用すると、変数が最上位(グローバル)スコープに配置されます。これは、関数が同じ変数を使用する場合、宣言した「var」変数が関数内の(非var)変数を上書きすることを意味します... JavaScriptスコープ

于 2011-03-22T22:51:39.553 に答える
1

varが関数内で使用されていない場合、JSは上記でそれを検索するため、異なる関数でsave varsを使用すると、競合する可能性があります。新しい変数を定義する場合は、常に変数を使用する価値があります。

于 2011-03-22T22:50:08.210 に答える