-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoperator.js
168 lines (145 loc) · 3.82 KB
/
operator.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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
// 1. String concatenation
console.log("my" + " cat");
console.log("1" + 2);
console.log(`string literals: 1 + 2 = ${1 + 2}`);
// 2. Numeric operatiors
console.log(1 + 1); // add
console.log(1 - 1); // substract
console.log(1 / 1); // divide
console.log(1 * 1); // multiply
console.log(5 % 2); // remainder
console.log(2 ** 3); //exponentiaion
// 3. Increment and decrement operators
let counter = 2;
const preIncrement = ++counter;
// counter = counter + 1;
// preIncrement = counter;
console.log(`preIncrement: ${preIncrement}, counter:${counter}`);
const postIncrement = counter++;
// postIncrement = counter;
// counter = counter + 1;
console.log(`postIncrement: ${postIncrement}, counter:${counter}`);
// 4. Assignment operators
let x = 3;
let y = 6;
x += y; // x = x + y;
x -= y;
x *= y;
x /= y;
// 5. Comparison operators
console.log(10 < 6); // less than
console.log(10 <= 6); // less than or equal
console.log(10 > 6); // greater than
console.log(10 >= 6); // greater than or equal
// 6. Logical operators : ||(or), &&(and), !(not)
const value1 = false;
const value2 = 4 < 2;
// || (or), finds the first truthy value(true값 출력시 멈춤)
// expression이나 함수를 맨뒤에 호출하는게 효율적인 코드
console.log(`or:${value1 || value2 || check()}`);
// && (and), finds the first falsy value
console.log(`or:${value1 || value2 || check()}`);
function check() {
for (let i = 0; i < 10; i++) {
//wasting time
console.log("❤");
}
return true;
}
// ! (not)
console.log(!value1);
// 7. Equality
const stringFive = "5";
const numberFive = 5;
// == loose equality, with type conversion
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
// === strict equality, no type conversion
console.log(stringFive === numberFive);
console.log(stringFive !== numberFive);
// object equality by reference
const och1 = { name: "och" };
const och2 = { name: "och" };
const och3 = och1;
console.log(och1 == och2);
console.log(och1 === och2);
console.log(och1 === och3);
// equality - puzzler
console.log(0 == false);
console.log(0 === false);
console.log("" == false);
console.log("" === false);
console.log(null == undefined);
console.log(null === undefined);
// 8. Conditional operator : if
const name = "och";
if (name == "och") {
console.log("welcome, och");
} else if (name === "coder") {
console.log("you are amazing, coder");
} else {
console.log("unknwon");
}
// 9. Ternary operator : ?
// condition ? value1 : value2; (간단할 경우만 사용)
console.log(name === "och" ? "yes" : "no");
// 10. Switch statement
// use for multiple if checks
// use for enum-like value check
// use for multiple type checks in TS
const browser = "IE";
switch (browser) {
case "IE":
console.log("go away!");
break;
case "Chrome":
case "Firefox":
console.log("love you!");
break;
default:
console.log("same all!");
break;
}
// 11. Loops
// while loop, while the condition is truthy
// body code is executed.
let i = 3;
while (i > 0) {
console.log(`while: ${i}`);
i--;
}
// do while loop, body code is executed first,
// then check the condition (블럭먼저 실행)
do {
console.log(`do while: ${i}`);
i--;
} while (i > 0);
// for loop, for(begin; condition ;step)
for (i = 3; i > 0; i--) {
console.log(`for: ${i}`);
}
for (let i = 3; i > 0; i -= 2) {
// inline variable declaration
console.log(`inline variable for: ${i}`);
}
// nested loops
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
console.log(`i: ${i}, j:${j}`);
}
}
// break, continue
// Q1. iterate from 0 to 10 and print only even numbers(use continue)
for (let i = 0; i < 11; i++) {
if (i % 2 !== 0) {
continue;
}
console.log(`q1:${i}`);
}
// Q2. iterate from 0 to 10 and print numbers until reaching 8 (use break)
for (let i = 0; i < 11; i++) {
if (i > 8) {
break;
}
console.log(`q2:{i}`);
}