Deep Dive 08장 제어문

@hanminss·2021년 11월 16일
0

Deep Dive

목록 보기
5/16
post-thumbnail

모던 자바스크립트 deep dive

08. 제어문

제어문은 코드의 흐름을 이해하기 어렵게 만들어 가독성을 해치는 단점이 있다. 추후에 배우는 고차 함수를 사용하여 제어문 사용을 억제해야 한다.

1. 블록문

  • 0개 이상의 문을 중괄호로 묶은 것.
  • 블목문의 중괄호는 자체 종결성을 가지기 때문에 세미콜론을 사용하지 않음

2. 조건문

  • 자바스크립트는 if-else, switch 두가지 조건문을 제공
  • 조건식은 boolean 값으로, 평가될 수 있는 표현식
  • 조건식이 boolean 값이 아닌 값으로 평가되면 암묵적으로 boolean 값으로 변환한다.
  • 코드블록 내의 문이 하나라면 중괄호를 생략할 수 있다.
  • switch문의 표현식은 boolean 값 보다는 문자열이나 숫자 값인 경우가 많다.
  • fall through가 생기지 않네 break를 잘 써준다. fall through를 활용할 수도 있다.
  • if-else로 해결할 수 있으면 if-else를 사용하는것이 더 좋다. 하지만 상황에 따라 다르니 가독성,효율성 등을 잘 판단해야 한다.

3. 반복문

  • for문은 반복 횟수가 명활할 때, while문은 반복 횟수가 불명확할 때 주로 사용한다.
  • while는 조건이 맞지 않으면 코드블록을 실행하지 않고 do-while문은 조건이 맞지 않아도 do 코드블록을 최소 1번은 실행한다. 쉽게 풀어 while은 평가-실행 순, do-while은 실행-평가 순이다.
  • break 문은 레이블문, 반복문, switch문을 제외한 다른곳에 사용할 수 없다.
  • 레이블 문 : 레이블 식별자가 붙은 문, 프로그램의 실행순서를 제어하는데 사용된다.
foo: console.log('foo');

foo1: {
  for(---){
    for(---){
     break foo1;
    }
  }
}
  • 위 코드에서 원래 break를 사용하면 외부 for문으로 나가지만 레이블문의 이름을 적어 레이블 밖으로 탈출했다.
  • lable문을 사용하면 가독성이 떨어져 사용이 권장되지 않는다.
  • continue문은 break문 처럼 탈출하는게 아닌 지금의 코드블록을 넘기고 증감식으로 실행 흐름을 다음으로 넘긴다.

0개의 댓글