본문 바로가기
Books/모던 JS Deep Dive ✔️

[모던 JS Deep Dive] 8장 - 제어문

by Aaron-Kim 2021. 12. 9.

8.1 블록문

 - block/compound statement

 - 하나의 실행 단위로 취급

 - 항상 문의 종료를 의미하는 자체 종결성을 가지므로 블록문의 끝에는 세미콜론 붙이지 않음

8.2 조건문

 - conditional statement

 - conditional expression (조건식)은 불리언 값으로 평가될 수 있는 표현식

 - if ... else 문

   - 조건식은 불리언 값으로 평가됨

   - 만약 불리언 값이 아니면 JS 엔진에 의해 암묵적으로 불리언 값으로 강제 변환됨

   - if ... else if ... else 문

   - else if 문과 else 문은 옵션

   - 코드 블록 내의 문이 하나라면 중괄호 생략 가능

   - 삼항 조건 연산자로 바꿔 쓸 수 있음

 - switch 문

   - 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름 옮김

   - default 문은 옵션

   - switch 문의 표현식은 불리언 값 보다는 문자열이나 숫자 값인 경우가 많음

   - 다양한 case에 따라 실행할 코드 블록 결정할 때 사용

   - fall through 문제 방지 위해 break 문 사용 (코드 블록 탈출)

     - default 문에서는 break 문 생략하는 것이 일반적임

     - break 문 의도적으로 사용 안해서 유용한 경우도 있음

       - 여러 개의 case 문을 하나의 조건으로도 사용 가능

   - 조건이 많아서 if ... else 문 보다 switch 문 사용 시 가독성이 더 좋다면 권장

8.3 반복문

 - loop statement

 - for 문

   - 조건식이 거짓으로 평가될 때까지 코드 블록 반복 실행

   - 반복 횟수 명확할 때 사용

   - 역 반복문

   - for 문의 변수 선언문, 조건식, 증감식은 모두 옵션

   - for (;;) { ... } // 무한루프

   - 중첩 for 문

 - while 문

   - 주어진 조건식의 평가 결과가 참이면 코드 블록 계속해서 반복 실행

   - 반복 횟수가 불명확할 때 주로 사용

   - 조건식의 평가 결과가 불리언 값 아니면 암묵적으로 강제 변환하여 논리적 참/거짓 구별

   - while (true) { ... } // 무한 루프

     - 무한 루프 탈출 위해서는 if 문으로 탈출 조건 만들고 break 문으로 코드 블록 탈출

 - do ... while 문

   - 코드 블록을 먼저 실행하고 조건식 평가

   - 코드 블록 무조건 한 번 이상 실행됨

 - forEach 메서드, for ... in 문, for ... of 문 (반복문 대체 가능)

8.4 break 문

 - 레이블 문, 반복문(for, for ... in, for ... of, while, do ... while), switch 문의 코드 블록 탈출

   - 이외의 문에 사용하면 SyntaxError 발생

 - label statement

   - 레이블 식별자가 붙은 레이블 문

   - 프로그램의 실행 순서 제어

   - 레이블 문 탈출 위해서는 break 문에 레이블 식별자 지정

   - 중첩된 for 문의 내부 for 문에서 break 문 실행하면 내부 for 문만 탈출하여 외부 for 문으로 진입함

   - 내부 for 문이 아니라 외부 for 문을 탈출하려면 레이블 문 사용

   - 그 외는 일반적으로 권장 X (프로그램 흐름 복잡성 증가, 가독성 나빠짐, 오류 발생 가능성 높아짐)

 - 문자열도 유사 배열이므로 for 문으로 순회 가능

8.5 continue 문

 - 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름 이동

 - 들여쓰기 한 단계 감소시키는 효과

반응형

댓글