私は、テキストフィールドに入力された2つの数字の合計と平均を計算するjavascriptを使って簡単なプログラムを作ろうとしました。JavaScriptのグローバル変数 - 関数のスコープ?
<script>
var a=parseInt(document.getElementById("text1").value);
var b=parseInt(document.getElementById("text2").value);
function sum()
{
var result = document.getElementById("valueofsum");
var sum=a+b;
result.innerHTML = sum;
}
function average()
{
var result = document.getElementById("valueofavg");
var avg=(a+b)/2;
result.innerHTML = avg;
}
function reset()
{
document.getElementById("text1").value = "";
document.getElementById("text2").value = "";
document.getElementById("valueofsum").innerHTML = "";
document.getElementById("valueofavg").innerHTML = "";
}
</script>
テキストフィールドから値を読み取る2つの変数は、グローバルに宣言され、 "a"と "b"として初期化されます。 合計と平均は、計算結果の代わりにNaN(NotaNumber)として返されます。
ローカル変数として関数内の両方の変数を使用すると、コードが正しく動作しているように見えますが、これはJavaScriptのグローバル変数の範囲について不思議に思っていますか?
ページが読み込まれると、テキストフィールドに数値が表示されますか? – apokryfos
あなたは 'console.log(a)しましたか? console.log(b); 'と彼らが' NaN'である理由を推測しますか? – Fr0zenFyr
ページの読み込み時に値が読み込まれないように、ボタンなどの入力を行います。あるいは、値を取り出して連続的に出力する 'setInterval()'を実行します。 –