-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
61 lines (48 loc) · 1.72 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
52
53
54
55
56
57
58
59
60
61
const resultScreen = document.querySelector('.result'),
operationScreen = document.querySelector('.operation'),
deleteButton = document.querySelector('.delete'),
clearButton = document.querySelector('.clear'),
inputButtons = document.querySelectorAll('.input'),
plusOrMinusButton = document.querySelector('.plus-or-minus'),
squareRootButton = document.querySelector('.square-root'),
equalToButton = document.querySelector('.equal-to');
for (const inputButton of inputButtons) {
inputButton.addEventListener('click', function () {
resultScreen.value += inputButton.innerText;
})
}
deleteButton.addEventListener('click', function () {
resultScreen.value = resultScreen.value.slice(0, -1);
})
clearButton.addEventListener('click', function () {
resultScreen.value = '';
})
plusOrMinusButton.addEventListener('click', function () {
resultScreen.value *= -1;
})
// Square Root Function
function squareRoot() {
if (resultScreen.value === '') {
return;
}
resultScreen.value = Math.sqrt(parseFloat(resultScreen.value)).toFixed(7);
}
squareRootButton.addEventListener('click', squareRoot);
function calculate() {
if (resultScreen.value === '') {
return;
}
const operation = resultScreen.value.replace('×', '*');
try {
const result = Function(`return ${operation}`)();
if (result === Infinity || isNaN(result) || result === -Infinity) {
resultScreen.value = 'Math Error';
return;
}
resultScreen.value = result;
operationScreen.textContent = operation.replace('*','×');
} catch (error) {
resultScreen.value = 'Syntax Error';
}
}
equalToButton.addEventListener('click', calculate);