مشکل در جاوا اسکریپت! (نمی دونم چرا متغیّر هام undefined می شن!)
خواستم امتحانی یک برنامه ی بسیار ساده ی ماشین حساب (که فقط چهار عمل اصلی رو انجام می ده!) رو با جاوا بنویسم..! ( می دونم خیلی نقص داره ولی بعد از حلّ این مشکلم ساختارش رو پیشرفته تر می کنم تا اعمالی با بیشتر از دو عامل رو هم انجام بده!)
همه جاش درست کار می کنه فقط نمی دونم چرا دوتا از متغیّر ها undefined می شن با اینکه یکیشون به درستی نعریف می شه( این ها رو با typeof چک کردم)
نتیجه هم اینکه حاصل عمل NaN (Not a Number) می شه.
این هم کد کامل اگه می تونید کمک کنید...
کد:
<!DOCTYPE html><meta charset="ISO-8859-1">
<html><head><title>test</title></head>
<body>
<table><tr><td colspan="2" height="50"><p id="a"></p></number></td></tr>
<tr><td><button type="button" onclick="but(1)">1</button><button type="button" onclick="but(2)">2</button><button type="button" onclick="but(3)">3</button><button type="button" onclick="but(4)">4</button><button type="button" onclick="but(5)">5</button>
<br /><button type="button" onclick="but(6)">6</button><button type="button" onclick="but(7)">7</button><button type="button" onclick="but(8)">8</button><button type="button" onclick="but(9)">9</button><button type="button" onclick="but(0)">0</button>
</td><td><button type="button" onclick="but(11)">+</button><button type="button" onclick="but(12)">-</button>
<br /><button type="button" onclick="but(13)">*</button><button type="button" onclick="but(14)">/</button></td></tr>
<tr><td><button type="button" onclick="but(15)">=</button></td></tr>
</table>
<script>
var whatToDo, savedNumber, secNumber, inputBar;
function but(n){
inputBar = document.getElementById("a");
if(n < 10){
inputBar.innerHTML += n;
}
else if(n === 11){
savedNumber = inputBar.value;
inputBar.innerHTML = "";
whatToDo = "+";
}
else if(n === 12){
savedNumber = inputBar.value;
inputBar.innerHTML = "";
whatToDo = "-";
}
else if(n === 13){
savedNumber = inputBar.value;
inputBar.innerHTML = "";
whatToDo = "*";
}
else if(n === 14){
savedNumber = inputBar.value;
inputBar.innerHTML = "";
whatToDo = "/";
}
else{
if (whatToDo === "+"){
inputBar.innerHTML = savedNumber + inputBar.value;
}
else if(whatToDo === "-"){
inputBar.innerHTML = savedNumber - inputBar.value;
}
else if(whatToDo === "*"){
inputBar.innerHTML = savedNumber * inputBar.value;
}
else{
inputBar.innerHTML = savedNumber / inputBar.value;
} }
}
</script>
</body>
</html>