-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
51 lines (45 loc) · 1.21 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
let displayValue = '';
let currentOperator = '';
let resultDisplayed = false;
function updateDisplay() {
const display = document.getElementById('display');
display.innerText = displayValue;
}
function clearDisplay() {
displayValue = '';
currentOperator = '';
resultDisplayed = false;
updateDisplay();
}
function appendToDisplay(char) {
if (resultDisplayed) {
clearDisplay();
}
displayValue += char;
updateDisplay();
}
function calculate() {
try {
displayValue = eval(displayValue).toString();
} catch (error) {
displayValue = 'Error';
}
resultDisplayed = true;
updateDisplay();
}
document.addEventListener('keydown', function (event) {
const key = event.key;
if (!isNaN(key) || key === '.' || key === '+' || key === '-' || key === '*' || key === '/' || key === 'Enter') {
if (key === 'Enter') {
calculate();
} else {
appendToDisplay(key);
}
} else if (key === 'Backspace') {
displayValue = displayValue.slice(0, -1);
updateDisplay();
} else if (key === 'Escape') {
clearDisplay();
}
});
updateDisplay();