//-------------| MohammadShokri |- "use strict"; const calculator = document.getElementById("calculator"); const output = document.getElementById("output"); const calcResult = document.getElementById("calcResult"); // handle physical keyboard window.addEventListener("keydown", (e) => { let numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; let operators = ["+", "-", "*", "/", "%", "**", "(", ")"]; if (e.key === "Backspace") { //delete the last index with backspace output.value = output.value.slice(0, -1); } if (numbers.includes(e.key) || operators.includes(e.key)) { //if it was number or operator write it output.value += e.key; } if (e.key === "c") { //clear output with C output.value = ""; } if (e.key === "Enter") { //calc with Enter try { let result = eval(output.value); output.value = result; } catch (error) { output.value = "Unknown Error"; } } }); //handle screen keyboard calculator.addEventListener("click", (e) => { let target = e.target; switch (target.id) { case "zero": output.value += 0; break; case "one": output.value += 1; break; case "two": output.value += 2; break; case "three": output.value += 3; break; case "four": output.value += 4; break; case "five": output.value += 5; break; case "six": output.value += 6; break; case "seven": output.value += 7; break; case "eight": output.value += 8; break; case "nine": output.value += 9; break; case "clear": output.value = ""; break; case "backspace": output.value = output.value.slice(0, -1); break; case "sum": output.value += "+"; break; case "sub": output.value += "-"; break; case "mul": output.value += "*"; break; case "div": output.value += "/"; break; case "mod": output.value += "%"; break; case "pow": output.value += "**"; break; case "lbracket": output.value += "("; break; case "rbracket": output.value += ")"; break; } }); //calculate result calcResult.addEventListener("click", (e) => { try { let result = eval(output.value); output.value = result; } catch (error) { output.value = "Unknown Error"; } });