このコードは、出力をゼロに記録します。出力6.JavaScriptが「0」を記録するのはなぜですか?
function sum(a,b){
r=a+b;
return r;
}
r=sum(2,9);
r1=sum(1,4);
diff=r-r1;
console.log(diff);
このコードは、出力をゼロに記録します。出力6.JavaScriptが「0」を記録するのはなぜですか?
function sum(a,b){
r=a+b;
return r;
}
r=sum(2,9);
r1=sum(1,4);
diff=r-r1;
console.log(diff);
はr
でグローバルに宣言され、同じ変数と見なされます関数外の変数:
function sum(a,b){
var r=a+b;
return r;
}
これは役立ちます。あなたは変数を宣言する場合var
を使用する必要が
function sum(a,b){
var r=a+b;
return r;
}
r=sum(2,9);
r1=sum(1,4);
diff=r-r1;
console.log(diff);
r
なければならない内部とsum
の外側の両方に言及されます。それはローカル変数ではありませんが、関数の外部に存在します。 sum
を呼び出すと、以前の値r
が上書きされます。特に
r1=sum(1,4);
は5
にr
とr1
の両方を設定し、そうdiff
は次に0
であろう。あなたが他のfucntionの内側とlocalY r
変数を宣言するときに、関数内スコープの競合とr
があるでしょうvar
キーワードを使用するようにしました
。 var
を使用しないと、暗黙的にグローバル変数が作成されます。
function sum(a,b){
r=a+b; // This ends up being a reference to the same `r` as below
return r;
}
r=sum(2,9); // This creates a global variable called r and sets it to 11
r1=sum(1,4); // This sets global `r` to 5 (because of the r=a+b in sum()
diff=r-r1; // 5 - 5 is 0
console.log(diff);
は、代わりにこれを行う:あなたはVaRのkeyword.Soと
関数内の変数rが、それがグローバルスコープであると宣言されていないため
function sum(a,b){
var r=a+b; // Now this r is local to the sum() function
return r;
}
var r=sum(2,9); // Now this r is local to whatever scope you are in
var r1=sum(1,4);
var diff=r-r1;
console.log(diff);
これがあります。
このR1 = SUM(1,4)を行っている場合、Rの値は
5にオーバーライドされると、R1の値は、R-r1が
オンの差5.Soもはアウトこれを避けるために0
であることを、あなたは、関数内でRを宣言するためにvarキーワードを使用することができます。
function sum(a,b){
var r=a+b;
return r;
}
r=sum(2,9);
r1=sum(1,4);
diff=r-r1;
console.log(diff);
これは役に立ちます。
ここで、rを宣言していますか?おそらく関数の範囲外だと思われますので、sumを呼び出すとrを上書きします。したがって、あなたは、 '' 'R = 5'に上書きr'is呼び出すsum' 2番目のをやってそうでないときは、すべてのあなたの' r'変数を宣言する必要があり、それ自体から同じ値を減算し、0 – Christopher
を取得しています – Lixus