1 回答

TA貢獻1852條經驗 獲得超1個贊
如果您只需要一個包含2個數字和一個運算符的計算器,則可以執行以下操作來存儲每個數字以及運算符的值。
const input = document.querySelector(".display");
const numbers = document.querySelectorAll(".number");
const operators = document.querySelectorAll(".operator");
const dot = document.querySelector(".dot");
const clear = document.querySelector(".clear");
let displayValue = "0";
let firstNum = "";
let secondNum = "";
let operator = "";
numbers.forEach(number => {
number.addEventListener("click", e => {
if (operator === "") { // Read first number if no operator set yet
firstNum += e.target.innerText;
console.log(firstNum)
} else { // Read second number
secondNum += e.target.innerText;
console.log(secondNum)
}
});
});
operators.forEach(op => {
op.addEventListener("click", e => {
operator = e.target.innerText;
console.log(operator)
// If equals operator, perform operation
});
});
編輯:要詳細說明有關第一個數字的值未正確打印到控制臺的注釋,請參閱下面的代碼片段:
numbers.forEach(number => {
number.addEventListener("click", e => {
if (operator === "") { // Read first number if no operator set yet
firstNum += e.target.innerText;
} else { // Read second number
secondNum += e.target.innerText;
}
});
});
operators.forEach(op => {
op.addEventListener("click", e => {
if (e.target.innerText !== "=") { // If the operator is not equals
operator = e.target.innerText;
console.log(firstNum); // Print the first number
console.log(operator); // Print the operator
} else { // If equals button clicked
console.log(secondNum); // Print 2nd number
switch (operator) { // Calculate and print output
case "+":
console.log(parseInt(firstNum) + parseInt(secondNum));
break;
case "-":
console.log(parseInt(firstNum) - parseInt(secondNum));
break;
// etc...
default:
break;
}
}
});
});
添加回答
舉報