10-4
컴퓨터에게 무언가를 명령하고, 컴퓨터는 명령받은 것을 실행합니다.
1. 버튼을 클릭했을 때
2. 버튼 옆의 체크박스가 선택이 되어있다면
3. 버튼이 빨간색이 되고
4. 아니면, 파란색이 된다
버튼이 클릭되는 것처럼 특정 이벤트가 발생이 되면 시작 = Trigger
컴퓨터는 이러한 일련의 흐름이 제어해야 합니다.
이렇게 흐름을 제어하는 것을 flow control(제어흐름)이라고 합니다.
제어 흐름의 종류
| 제어흐름 | 설명 | 종류 |
|---|---|---|
| choice | 일부 조건이 충족되는 경우에만 일련의 명령문 실행 | If-else, switch |
| loop | 어떤 조건이 충족될 때까지 일련의 명령문을 0회 이상 실행 | Collection loop, General loop |
| continue | 현재 실행 구문에서 떨어진 한 구문의 집합을 실행 | Loop continuation |
| break | 프로그램 실행을 중단 | Loop early exit, 함수 실행 정지 |
expression
어떤 값으로 이행되는 임의의 유효한 코드 단위 입니다.
표현식이 평가되면 새로운 값을 생성하거나 기존의 값을 참조합니다.
값으로 평가될 수 있는 문은 모두 표현식 입니다.
const 변수명 = 'apple';
const 함수 = (인자) => {
if (인자 === 'apple') {
return '🍎';
} else {
return 'X';
}
};
함수('apple');
변수에 값을 할당하면서 변수를 생성하였는데, 이를 '리터럴 표현식'이라고도 합니다.
함수를 값으로서 변수에 할당해서 생성하였는데, 이를 '함수 표현식'이라고 합니다.
statement
프로그램을 구성하는 기본단위, 최소 실행 단위 입니다.
명령문이라고도 합니다.
선언문, 할당문, 제어문, 반복문, 블럭문 등이 있습니다.
블럭문 (block statement)
명령문들을 그룹으로 묶을 수 있는 블럭문
한쌍의 중괄호로 묶어서 표현합니다.
제어문 (control flow statement)
반복문 (iteration statement)
일부 조건이 충족되는 경우에만 일련의 명령문을 실행합니다.
if else 문
논리조건의 참/거짓에 따라 명령문을 실행해야 할 경우 사용합니다.
if문의 논리조건에는 true, false로 평가할 수 있는 표현식을 대입할 수 있습니다.
논리조건이 참인 경우, if 블럭문을 실행하고, 논리조건이 거짓인 경우, else 블럭문을 실행합니다.
강제 타입 변환으로 인해 false로 평가되는 데이터들이 있는데, 이렇게 false로 평가되는 것들을 Falsy 라고 부릅니다.
Falsy로 평가되는 것들은 false, undefined, null, 0, NaN, “”(empty string) 이 있습니다..
else if 문
else if 문도 사용가능합니다.
다수의 조건을 순차적으로 검사할 수 있습니다.
if.. if.. else 문 Nested Conditional
if 문 안에 if 문을 작성하는 중첩 if문을 사용할 수도 있습니다.
중첩 if문은 깊이(중첩)이 깊어질 수록 난해해지므로,
중첩 if문 보다는 빠르게 조건문을 끝낼 수 있는 조건부터 작성하는 'Guard Clauses'형태로 구현하는 것을 권장합니다. - 마틴 파울러 (리펙토링자료 저자)
switch 문
switch에 명시된 표현식을 평가한 후, 평가된 값과 case라벨 값을 비교하여 일치하는 case의 명령문을 실행합니다.
일치하는 case가 없는 경우 default 명령문을 실행할 수도 있습니다.
const a = (parameter) => {
switch (parameter /*표현식*/) {
case 1: // 1 = 라벨 = 표현식의 결과값에 해당하는 값
return 1;
case 2:
case 3:
return 23;
default:
return 0;
라벨별로 함수를 종료시키는 return이나 break문을 작성하는 경우 switch문은 종료되지 않고 다음 종료문까지 실행되므로 종료지점에는 명시적으로 종료구문을 작성해야합니다.