【发布时间】:2019-03-11 10:26:07
【问题描述】:
我正在尝试从头开始构建一个 JavaScript 计算器,而不遵循教程,作为学习练习。大部分功能都在工作,除非一个计算是一个接一个地执行的。 IE: 7 x 6 + 42 在这种情况下,它会将显示重置为 0,但似乎仍然保留该变量。
是否有必要将数字存储为 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;操作的顺序是“用户输入它们的顺序”。所以,是的,只是一个基本的攻丝计算器。
【问题讨论】:
标签: javascript calculator