-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
118 lines (104 loc) · 2.7 KB
/
index.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
let nonOperatorButtons = document.querySelectorAll(".non-operator");
let operatorButtons = document.querySelectorAll(".operator");
let screenBottom = document.querySelector("#screen-bottom");
let screenTop = document.querySelector("#screen-top");
let equalsButton = document.querySelector("#equals");
let resetButton = document.querySelector("#reset");
let gitHubButton = document.querySelector("#gitHub");
let jsButton = document.querySelector("#js");
screenBottom.innerHTML = "0";
let number1 = "";
let number2 = "";
let operator = "";
let isOperatorSelected = false;
function writeToScreen(text) {
if (screenBottom.innerHTML.includes("=")) return;
screenBottom.innerHTML === "0"
? (screenBottom.innerHTML = text)
: (screenBottom.innerHTML += text);
if (isOperatorSelected) {
number2 += text;
} else {
number1 += text;
}
}
function selectOperator(text) {
if (number1 === "" || screenBottom.innerHTML.includes("=")) return;
isOperatorSelected = true;
operator = text;
screenBottom.innerHTML = "";
screenTop.innerHTML = number1 + " " + operator;
}
function calculate() {
if (
number1 === "" ||
number2 === "" ||
operator === "" ||
screenBottom.innerHTML.includes("=")
)
return;
screenTop.innerHTML = number1 + " " + operator + " " + number2;
parseNumbers();
let result = 0;
switch (operator) {
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "x":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
case "%":
result = number1 % number2;
break;
case "C":
reset();
break;
default:
break;
}
screenBottom.innerHTML = "= " + result;
}
function parseNumbers() {
number1.includes(".")
? (number1 = parseFloat(number1))
: (number1 = parseInt(number1));
number2.includes(".")
? (number2 = parseFloat(number2))
: (number2 = parseInt(number2));
}
function reset() {
number1 = "";
number2 = "";
operator = "";
screenBottom.innerHTML = 0;
screenTop.innerHTML = "";
isOperatorSelected = false;
}
nonOperatorButtons.forEach((e) => {
e.addEventListener("click", () => {
writeToScreen(e.innerHTML);
});
});
operatorButtons.forEach((e) => {
e.addEventListener("click", () => {
selectOperator(e.innerHTML);
});
});
equalsButton.addEventListener("click", () => {
calculate();
});
resetButton.addEventListener("click", () => {
reset();
});
gitHubButton.addEventListener("click", () => {
window.open("https://github.com/shhhcoding", '_blank').focus();
});
jsButton.addEventListener("click", () => {
window.open("https://www.javascript.com/", '_blank').focus();
});