【发布时间】:2021-05-31 10:37:01
【问题描述】:
全局定义的变量
let firstNumber = 0;
let secondNumber = 0;
let clearValue;
let operator = "";
const divs = document.querySelectorAll("#panel div");
div 选择和变量赋值
divs.forEach((div) => {
div.addEventListener("click", () => {
let selection1 = div.id;
switch (selection1) {
case "one":
inputArea.value += "1";
break;
case "two":
inputArea.value += "2";
break;
case "three":
inputArea.value += "3";
break;
case "four":
inputArea.value += "4";
break;
case "five":
inputArea.value += "5";
break;
case "six":
inputArea.value += "6";
break;
case "seven":
inputArea.value += "7";
break;
case "eight":
inputArea.value += "8";
break;
case "nine":
inputArea.value += "9";
break;
case "zero":
inputArea.value += "0";
break;
case "decimal":
inputArea.value += ".";
break;
case "clear":
clearValue = inputArea.value;
clearValue = firstNumber.slice(0, -1);
inputArea.value = clearValue;
break;
case "allClear":
inputArea.value = "";
break;
case "add":
operator = "+";
firstNumber = parseFloat(inputArea.value);
inputArea.value = "+";
break;
case "subtract":
operator = "-";
firstNumber = parseFloat(inputArea.value);
inputArea.value = "-";
break;
case "divide":
operator = "/";
firstNumber = parseFloat(inputArea.value);
inputArea.value = "/";
break;
case "multiply":
operator = "x";
firstNumber = parseFloat(inputArea.value);
inputArea.value = "x";
break;
case "module":
operator = "%";
firstNumber = parseFloat(inputArea.value);
inputArea.value = "%";
break;
case "equal":
secondNumber = parseFloat(inputArea.value);
console.log(secondNumber);
inputArea.value = calculate(firstNumber, operator, secondNumber);
break;
}
});
});
计算函数
const calculate = (num1, oper, num2) => {
num1 = parseFloat(num1);
num2 = parseFloat(num2);
switch (oper) {
case "+":
console.log(num1 + num2);
return num1 + num2;
case "-":
console.log(num1 - num2);
return num1 - num2;
case "x":
return num1 * num2;
case "/":
return num1 / num2;
case "%":
return num1 % num2;
}
};
这是我完整代码的链接。https://codepen.io/reddevil-1/pen/mdWqYbN。
我正在尝试制作一个计算器,为此我提供了一个输入字段,用户可以在其中单击计算器上的按钮以提供一些值作为输入。当我输入我的第一个值然后按下运算符按钮时,我将输入字段值保存到一个名为“第一个数字”的变量中,然后我将运算符存储在一个名为运算符的变量中,然后单击“=”,我将另一个数字存储在名为 secondNumber 的变量中,然后我调用一个函数进行计算部分。使用 switch 案例,我正在检查运算符的值,然后相应地返回值。加法工作正常,但是当我尝试减去一个数字时,它仍然最终将它们相加。谁能告诉我,我哪里出错了?
【问题讨论】:
标签: javascript function