자바 스크립트를 사용하여 텍스트 필드에 입력 된 두 숫자의 합과 평균을 계산하는 간단한 프로그램을 만들려고했습니다.자바 스크립트 전역 변수 - 함수 범위?
<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>
텍스트 필드에서 값을 읽는 두 변수는 전역 적으로 선언되고 "a"와 "b"로 초기화됩니다. 합계와 평균은 계산 된 결과 대신 NaN (NotaNumber)으로 반환됩니다.
로컬 변수로 함수 내부의 변수를 모두 선언하면 코드가 제대로 작동하는 것으로 보이는데 이는 자바 스크립트에서 전역 변수의 범위에 대해 궁금한가요?
페이지가로드 될 때 텍스트 필드에 숫자 값이 있습니까? – apokryfos
당신은'console.log (a); console.log (b);'그들이 왜 NaN인지 추측 할 수 있습니까? – Fr0zenFyr
페이지로드시 값을 읽을 수 없도록 버튼이나 다른 입력을 제공하십시오. 또는'setInterval()'을 사용하여 값을 가져 와서 연속적으로 출력합니다. –