Я пробовал сделать простую программу, используя 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>
Две переменных, которые считывают значения из текстовых полей глобально объявлены и инициализирован как «а» и «б». Сумма и среднее значение возвращаются как NaN (NotaNumber) вместо вычисленных результатов.
Если я использую/объявляю переменные внутри функций как локальные переменные, код, похоже, работает должным образом, что заставляет задуматься о области глобальных переменных в javascript?
Имеют ли текстовые поля числовые значения при загрузке страницы? – apokryfos
ли вы 'console.log (a); console.log (b); 'и догадаться, почему они являются« NaN »? – Fr0zenFyr
Предоставьте кнопку или какой-либо другой вход, чтобы значения не читались при загрузке страницы. Или сделайте 'setInterval()', который извлекает значения и печатает их непрерывно. –