-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
129 lines (96 loc) · 2.74 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
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
119
120
121
122
123
124
125
126
127
128
129
var started = false;
//Selecting Elements
var numberButtons = document.querySelectorAll(".number");
var operatorButtons = document.querySelectorAll(".operator");
var prevTakenValue = document.querySelector(".prevValue");
var currentTakenValue = document.querySelector(".currentValue");
var clearButton = document.querySelector(".clear");
var deleteButton = document.querySelector(".backspace");
var resultButton = document.querySelector(".result");
if (started === false) {
var currentOperand = "";
var prevOperand = "";
var operator = undefined;
document.querySelector(".container").addEventListener("click", function() {
started = true;
});
}
//numberButtons
for (var i = 0; i < numberButtons.length; i++) {
numberButtons[i].addEventListener("click", storeOperand);
}
function storeOperand() {
var operandValue = this.innerText;
if (operandValue === "." && currentOperand.includes(".") === true) {
operandValue = "";
}
currentOperand = currentOperand + operandValue.toString();
displayOutput();
}
//operatorButtons
for (var j = 0; j < operatorButtons.length; j++) {
operatorButtons[j].addEventListener("click", storeOperator);
}
function storeOperator() {
var operatorValue = this.innerText;
operator = operatorValue;
if (currentOperand === "") {
operatorValue = "";
} else if (prevOperand !== "") {
computation(operator);
operator = undefined;
} else {
currentOperand = currentOperand + " " + operatorValue.toString();
prevOperand = currentOperand;
currentOperand = "";
}
displayOutput();
}
//Computation
function computation(operatorValue) {
var calculatedValue = undefined;
const prevNumber = parseFloat(prevOperand);
const currentNumber = parseFloat(currentOperand);
switch (operatorValue) {
case "+":
calculatedValue = prevNumber + currentNumber;
break;
case "-":
calculatedValue = prevNumber - currentNumber;
break;
case "×":
calculatedValue = prevNumber * currentNumber;
break;
case "÷":
calculatedValue = prevNumber / currentNumber;
break;
default:
calculatedValue = "";
}
currentOperand = calculatedValue;
prevOperand = "";
}
//clear
clearButton.addEventListener("click", clearData);
function clearData() {
currentOperand = "";
prevOperand = "";
displayOutput();
}
//backspace
deleteButton.addEventListener("click", deleteData);
function deleteData() {
currentOperand = currentOperand.toString().slice(0, -1);
displayOutput();
}
//resultButton
resultButton.addEventListener("click", showResult);
function showResult() {
computation(operator);
displayOutput();
}
//display
function displayOutput() {
prevTakenValue.innerText = prevOperand;
currentTakenValue.innerText = currentOperand;
}