Before start
Control flow는 흐름을 제어한다는 뜻이다. 이 때 흐름은 코드의 실행 흐름을 이야기한다. 즉, control flow statement는 코드의 실행 흐름을 제어하는 statement(문)를 말한다.
+) statement는 한번에 실행되는 코드의 단위를 말한다.
+) expression은 값을 생성하는 statement를 말한다. 즉 statement라는 큰 범위 안에 expression이 속해있는 것이다.
Conditional Statement
코드 실행의 흐름을 제어하는 방법 중 하나는 조건문을 이용하는 것이다. 내가 작성한 조건에서 true값을 생성하면 코드를 실행하고, false값을 생성하면 코드를 실행하지 않게 함으로써 코드의 실행 흐름을 제어할 수 있다.
if( condition ) { ... }
가장 흔한 조건문의 형태이다. condition에는 expression을 작성하고, 이 expression에 logical operator가 자주 사용되는 것을 이전 챕터에서 살펴보았다. condition에서 생성되는 값이 true이면 { bracket } 안에 작성된 코드를 실행한다.
else if(another condition) {...} 또는 else {...}와 결합하여 사용할 수도 있다.
switch( expr ) { case... case... }
expr에서 생성되는 값이 case와 matching 되는지를 평가하고, matching되는 case를 찾으면, 그 case에 작성된 statement와 그 case 이후에 작성된 모든 case의 statement를 실행한다. 만약 해당하는 case에 작성된 statement 만을 실행시키고 싶다면 다음과 같이 모든 statement의 마지막 line에 break를 작성해야 한다. default를 작성하면 어떤 case에도 해당하지 않을 때 실행할 코드를 정할 수 있다.
+) switch 문을 함수 내부에서 작성한다면, break를 사용하지 않고 return 키워드를 사용할 수 있다(함수 실행 중 return을 만나면, 나머지 함수 코드를 실행하지 않은 채 함수를 종료하기 때문).
let fruit = 'apple';
switch(fruit) {
case 'lemon' :
console.log('🍋') ;
break;
case 'apple' :
console.log('🍎');
break; // 만약 break를 작성하지 않는다면, 🍎가 console에 출력된 후에 🥝도 출력된다.
case 'kiwi' :
console.log('🥝');
break;
default :
console.log('not fruit');
break;
}
Ternary operator | ?
먼저 Ternary operator 라는 말은 세 개의 피연산자를 필요로 하는 연산자라는 뜻이다. JS에서 세 개의 피연산자를 필요로하는 연산자는 '?' 연산자 뿐이라, ternary operator라고 부르는 경우가 많은 것 같다. 이 Ternary operator의 진짜 이름은 conditional operator이다. 조건문 연산자라는 뜻이다.
condition ? exprIfTrue : exprIfFalse
condition의 평가 결과가 truthy 하면 expreIfTrue에서 생성되는 값을, falsy하면 exprIfFalse에서 생성되는 값을 반환한다.
let greeting = function(person) {
let name = person ? person.name : `stranger`;
return `hello, ${name}`;
}
console.log(greeting({name: `Alice`})); // "hello, Alice"
console.log(greeting(null)); // "hello, stranger"
greeting은 person이라는 인자를 받는 함수를 저장하고 있는데, 전달받은 값이 truthy하면 person의 name이라는 값을 name 변수에 저장하고, 전달받은 값이 falsy하면 staranger라는 문자열을 name에 저장한다.
Loop Statement
코드의 실행 흐름을 제어하는 두 번째 방법에는 반복문을 이용하는 것이 있다. 반복문은 같은 코드를 여러번 실행하고 싶을 때 작성한다.
for( declaration; condition; increment or decrement ) { ... }
가장 흔한 반복문의 형태는 for문을 이용하는 것이다. for statement는 condition이 truthy하면 { ... } 안의 코드를 실행한다. for statement를 작성하면 어떤 일이 일어날까?
- declaration statement 실행 // 한 번만 실행
- condition 확인 // 2, 3을 반복 실행
- truthy 하면 {...} 실행, falsy하면 중지
- {...} 실행 뒤 increment or decrement 실행
while( condition ) { ... } & do{ ... } while( condition )
while(condition) {...}은 조건이 truthy할 때 코드를 반복적으로 실행하고, do{...} while(condition)은 코드를 실행한 뒤에 조건을 확인하고, 조건이 truthy 하면 코드를 반복 실행한다. 만약 condition이 falsy하면 while statement의 경우에는 아무것도 실행하지 않고 반복문을 종료하지만, do-while의 경우 일단 코드를 한번 실행한 뒤에, condition을 확인하고 반복문을 종료한다.
'Study > JavaScript' 카테고리의 다른 글
Object (0) | 2022.03.28 |
---|---|
Function & Functional Programming (0) | 2022.03.26 |
Operator (0) | 2022.03.25 |
Data Type (0) | 2022.03.24 |
Variables (0) | 2022.03.24 |