-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
57 lines (48 loc) · 1.76 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
// Variables
let currentInput = document.querySelector(".currentInput");
let answerScreen = document.querySelector(".answerScreen");
let buttons = document.querySelectorAll("button");
let erasebtn = document.querySelector("#erase");
let clearbtn = document.querySelector("#clear");
let evaluate = document.querySelector("#evaluate");
// Calculator Display
let realTimeScreenValue = [];
// To Clear
clearbtn.addEventListener("click", () => {
realTimeScreenValue = [""];
answerScreen.innerHTML = 0;
currentInput.className = "currentInput";
answerScreen.className = "answerScreen";
answerScreen.style.color = " rgba(150, 150, 150, 0.87)";
});
// Get value of any button clicked and display to the screen
buttons.forEach((btn) => {
btn.addEventListener("click", () => {
// when clicked button is not erased button
if (!btn.id.match("erase")) {
// To display value on btn press
realTimeScreenValue.push(btn.value);
currentInput.innerHTML = realTimeScreenValue.join("");
// To evaluate answer in real time
if (btn.classList.contains("num_btn")) {
answerScreen.innerHTML = eval(realTimeScreenValue.join(""));
}
}
// When erase button is clicked
if (btn.id.match("erase")) {
realTimeScreenValue.pop();
currentInput.innerHTML = realTimeScreenValue.join("");
answerScreen.innerHTML = eval(realTimeScreenValue.join(""));
}
// When clicked button is evaluate button
if (btn.id.match("evaluate")) {
currentInput.className = "answerScreen";
answerScreen.className = "currentInput";
answerScreen.style.color = "white";
}
// To prevent undefined error in screen
if (typeof eval(realTimeScreenValue.join("")) == "undefined") {
answerScreen.innerHTML = 0;
}
});
});