JavaScript

드림코딩 : JS - 4. operator, if, for loop

식초 2020. 10. 16. 14:21
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
//1. String concatenation (문자열 연쇄)
console.log('my' + ' cat');  //my cat 값
console.log('1' + '2');  //12값
console.log(`string literals: 1 + 2 = ${1+2}`);  //변수값 계산해서 string으로 포함해 보여준다
console.log(`string literals: 
....                           // ``사이 중간에 문자도 그대로 인식
1 + 2 = ${1+2}`);
 
console.log('sigcho\'s book');  //백슬러시로 싱글쿼트? 넣어줘야 제대로 표시된다
console.log("sigcho's \nbook");  //줄바꿈은 \n이다, 탭키는 \t
 
 
 
//2. Numeric operators (숫자 연산자)
console.log(1 + 1);
console.log(1 - 1);
console.log(1 / 1);
console.log(1 * 1);
console.log(5 % 2); //나머지값
console.log(2 ** 3); // 2의 3승
 
 
 
//3. Increment and decrement operators
let counter = 2;
const preIncrement = ++counter;  //앞에다 붙이면! 3값
//counter = counter + 1;  //값을 하나 더하고나서 
//preIncrement = counter;  //counter 값 할당
const postIncrement = counter++//뒤에다 붙이면! 3값
//postIncrement = counter;  // 먼저 counter 값 할당 후에
//counter = counter +1;  //counter 값 1 증가시킨다, 4값
 
 
 
//4. Assignment operators (할당 연산자)
let x = 3;
let y = 6;
+= y;  //x = x + y;
-= y;
*= y;
/= y;
 
 
 
//5. Comparison operators (비교 연산자)
console.log(10 < 5);
console.log(10 <= 5);
console.log(10 > 5);
console.log(10 >= 5);
 
 
 
//6. Logical operators(논리 연산자): ||(or), &&(and), !(not)
const value1 = false;
const value2 = 4 < 2;  //false
function check(){
    for(let i =0; i<10; i++){
        ...
        console.log('OMG');
    }
    return true;      //true값 나온다
}
 
// ||(or), 첫번째 true를 찾아라, true된다(무거운 함수 호출은 마지막에 넣는다!)
console.log(`or: ${value1 || value2 || check()}`); //한개만 true여도 true
 
// &&(and), 첫번째 false를 찾아라, false된다(무거운 함수 호출은 마지막에 넣는다!)
console.log(`and: ${value1 && value2 && check()}`); //모두 true여야 true
//종종 긴 if문을 쓸때 사용한다
//nullableObject && nullableObject.something
if(nullableObject != null){
    nullableObject.something;
}
 
// !(not)
console.log(!value1);
 
 
 
//7. Equality (동등 연산자)
const stringFive = '5';
const numberFive = 5;
 
// == loose equality,타입 변경한다
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
 
// === strict equality, 타입 변경 안 한다 (주로 이용하기!)
console.log(stringFive === numberFive);
console.log(stringFive !== numberFive);
 
//object equality by reference (객체 동등) **그림참고**
const sigcho1 = {name'sigcho'};
const sigcho2 = {name'sigcho'};
const sigcho3 = sigcho1;
console.log(sigcho1 == sighco2); //ref1, ref2 다르다, false값
console.log(sigcho1 === sigcho2); //ref1, ref2 다르다, false값
console.log(sigcho1 === sigcho3);  //ref1, ref1 같다, true값
 
//equality - puzzler
console.log(0 == false);  //true값, 같은 값으로 간주
console.log(0 === false);  //false값, 엄격히 0은 불리언 타입 아님
console.log('' == false);  //true값
console.log('' === false); //false값
console.log(null == undefined);  //true값, 같은 값으로 간주
console.log(null === undefined); //fasle값, 다른 타입
 
 
 
//8. Conditional operator(조건 연산자): if
//if, else if, else
const name ='sigcho';
if(name === 'sigcho'){
    console.log('Welcome, Sigcho!');
else if(name === 'coder'){
    console.log('You are amazing coder');
else{
    console.log('unknown');
}
 
 
 
//9. Ternary operator(삼항 연산자): ?
//condition ? value1 : value2;
console.log(name === 'sigcho' ? 'yes' : 'no'); //값이 true이면 ?다음것, false면 :다음것 실행
 
 
 
//10. Switch statement
//다양한 if 검사할 때 사용
//이넘enum 같은 값 검사할 때 사용
//TS에서 다양한 type 검사할 때 사용
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는 상태가 truthy면 무한대로 반복
//body code가 실행된다
let i =3;
while(i>0){     // while: 3,2,1까지 실행된다
    console.log(`while: ${1}`);
    i--
 
//do while loop는 body code 실행 먼저하고
//조건을 검사한다
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=i-2){  //let이라는 지역 변수 선언
    console.log(`inline variable for: ${i}`);
}
 
//nested loops
for(let i=0; i<10; i++){
    for(let j=0; j<10; j++){    //i=0일때 j=0~9까지 실행, i=1일때 j=0~9까지 실행 ...
        console.log(`i: ${i}, j: ${j}`);  //cpu 많이 차지해서 비추
    }
}
 
//break(완전히 끝낸다)
//continue(지금것만 끝내고 처음으로 돌아간다)
cs