我正在尝试从头开始构建一个JavaScript计算器,作为学习练习而不是按照教程。很多功能都正常工作,除非在另一个计算之后立即执行计算。例如:7 x 6 + 42,在这种情况下,它会将显示重置为0,但似乎仍然保留变量。
需要将数字存储在3个值中吗?而不是2个?目前我使用: - currentValue,它保存计算的先前总数。 - newValue,它是用户当前输入的数字。
需要将数字存储在3个值中吗?而不是2个?目前我使用: - currentValue,它保存计算的先前总数。 - newValue,它是用户当前输入的数字。
function newNum(pressed) { //Adds digit of key pressed to new number being entered.
//console.log ("Button pressed " + pressed);
if (newValue == 0) { //If new calculation, newValue is set to key pressed.
newValue += pressed;
} else { //Else if continuing calculation, key pressed is added to end of newValue.
newValue = newValue.toString();
newValue = newValue + pressed; //Adds digit at end of String, then converts back to Number.
newValue = parseFloat(newValue);
}
document.getElementById('result').innerHTML = newValue;
}
function newCalc(pressed) { //Will use this mathematical operation to find the value.
if (!currentValue) {
currentValue = newValue;
} else {
document.getElementById('result').innerHTML = newValue;
}
newOperation = pressed;
newValue = 0;
}
function equals() { //Resolves calculation.
newValue = parseFloat(newValue);
switch(newOperation) {
case "/":
currentValue = (currentValue / newValue);
break;
case "*":
currentValue = (currentValue * newValue);
break;
case "-":
currentValue = (currentValue - newValue);
break;
case "+":
currentValue = (currentValue + newValue);
break;
}
currentValue = parseFloat(currentValue);
newValue = 0;
document.getElementById('result').innerHTML = currentValue;
}
https://codepen.io/adam_weiler/pen/aRNppX
我正在学习编程,我知道代码有点臃肿。如果您有任何建议以简化代码,将是非常有帮助的!
编辑:我给出了一个糟糕的例子。我只是编写了一个基本的计算器,您可以点击按钮输入数字。它不使用BEDMAS;操作顺序是“用户输入的顺序”。所以,这只是一个基本的点击计算器。