93 lines
2.0 KiB
JavaScript
93 lines
2.0 KiB
JavaScript
const display = document.querySelector("#display");
|
||
let previousNumber = 0;
|
||
let lastOperation = "";
|
||
|
||
function doOperation(operation, numA, numB) {
|
||
numA = Number(numA);
|
||
numB = Number(numB);
|
||
switch (operation) {
|
||
case "+":
|
||
return numA + numB;
|
||
break;
|
||
case "÷":
|
||
return numA / numB;
|
||
break;
|
||
case "×":
|
||
return numA * numB;
|
||
break;
|
||
case "-":
|
||
return numA - numB;
|
||
break;
|
||
}
|
||
}
|
||
|
||
//Set numbers logic
|
||
const numbers = document.querySelectorAll(".number");
|
||
|
||
numbers.forEach((number) => {
|
||
number.addEventListener("click", (event) => {
|
||
updateDisplay(event.target.innerText);
|
||
});
|
||
});
|
||
|
||
function updateDisplay(number) {
|
||
let currentResult = display.value;
|
||
if (currentResult === "0") {
|
||
display.value = number;
|
||
} else {
|
||
display.value += number;
|
||
}
|
||
}
|
||
|
||
function reset() {
|
||
display.value = "0";
|
||
previousNumber = "0";
|
||
lastOperation = "";
|
||
}
|
||
|
||
// Set clear button
|
||
const clearButton = document.querySelector(".clear");
|
||
clearButton.addEventListener("click", () => {
|
||
reset();
|
||
});
|
||
|
||
// Set backspace button
|
||
backspaceButton = document.querySelector(".backspace");
|
||
backspaceButton.addEventListener("click", () => {
|
||
let result = display.value;
|
||
result = result.slice(0, -1);
|
||
if (result.length === 0) {
|
||
result = "0";
|
||
}
|
||
display.value = result;
|
||
});
|
||
|
||
// Operations
|
||
const operators = document.querySelectorAll(".operator");
|
||
operators.forEach((operator) => {
|
||
operator.addEventListener("click", (event) => {
|
||
if (lastOperation) {
|
||
previousNumber = doOperation(
|
||
lastOperation,
|
||
previousNumber,
|
||
display.value,
|
||
);
|
||
} else {
|
||
previousNumber = Number(display.value);
|
||
}
|
||
|
||
display.value = "0";
|
||
lastOperation = event.target.innerText;
|
||
});
|
||
});
|
||
|
||
// Result button
|
||
const resultButton = document.querySelector(".result");
|
||
resultButton.addEventListener("click", (event) => {
|
||
if (lastOperation) {
|
||
display.value = doOperation(lastOperation, previousNumber, display.value);
|
||
}
|
||
});
|
||
|
||
reset();
|