Malý repozitář do hodin WTL pro 3.J skupinu WEB
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

79 lines
2.1 KiB

const display = document.getElementById("display");
const numbers = document.querySelectorAll(".number");
const operators = document.querySelectorAll(".operator");
const equals = document.getElementById("equals");
const clear = document.getElementById("clear");
const decimal = document.querySelector(".decimal");
let currentInput = "";
let firstOperand = null;
let operator = null;
numbers.forEach( number=> {
number.addEventListener("click", () => {
currentInput += number.textContent;
display.value = currentInput;
})
})
decimal.addEventListener("click", () => {
if(!currentInput.includes(".")) {
currentInput += ".";
display.value = currentInput;
}
})
operators.forEach(op => {
op.addEventListener("click", () => {
if(currentInput !== "") {
if(firstOperand === null){
firstOperand = parseFloat(currentInput);
} else {
calculate();
firstOperand = parseFloat(currentInput);
}
operator = op.textContent;
currentInput = "";
}
})
})
function calculate() {
const secondOperand = parseFloat(currentInput);
let result;
switch(operator) {
case "+":
result = firstOperand + secondOperand;
break;
case "-":
result = firstOperand - secondOperand;
break;
case "*":
result = firstOperand * secondOperand;
break;
case "/":
if(secondOperand == 0) {
result = "Nelze dělit nulou";
} else {
result = firstOperand / secondOperand;
}
break;
}
currentInput = result.toString();
display.value = currentInput;
}
equals.addEventListener("click", () => {
if(firstOperand !== null && operator !== null
&& currentInput !== null) {
calculate();
firstOperand = null;
operator = null;
}
})
clear.addEventListener("click", () => {
currentInput = "";
operator = null;
firstOperand = null;
display.value = "";
})