たぶんかなり簡単な質問です。
JavaScriptでvar
キーワードを使用する場所。それを使用するか、同じ効果を持たないようです(しかし、もちろん私はまだ言語を学んでいます)
例えば、これらは両方とも私には同じように見えます:
(function(){
var a = "mundo"
alert("Hola, " + a )
})()
そして
(function(){
a = "mundo"
alert("Hola, " + a )
})()
しかし、もちろん、違いが現れるより複雑な例がなければなりません。
var
を使用すると、現在のスコープで変数をインスタンス化します。これにより、現在のスコープ内で、上位スコープで同じ名前の変数にアクセスすることもできなくなります。
最初の例では、「a」がインスタンス化され、関数スコープ内で設定されています。 2番目の例では、var
がないため、 'a'は関数スコープ外に設定されています
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
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'
Javascriptオブジェクトのスコープを更新する必要があると思います。
「var」キーワードを使用すると、変数が最上位(グローバル)スコープに配置されます。これは、関数が同じ変数を使用する場合、宣言した「var」変数が関数の(非var)変数を上書きすることを意味します... JavaScript Scopes
varが関数内で使用されていない場合、JSはそれを上で探します。したがって、異なる関数でsave varsを使用すると、競合する可能性があります。新しい変数を定義する場合は、常に変数を使用する価値があります。