08 - 제어문

2022. 8. 24.·🎨 프론트엔드 공부/JS & TS

모던 자바스크립트 Deep Dive 정리

▶ 제어문은 조건문과 반복문으로 크게 나눌 수 있다

▷ 과도한 제어문은 가독성을 해치기 때문에 map, forEach, filter, reduce 같은 고차함수로 제어문을 최소화하는게 바람직하다

 

fall through

▶ switch 문에서, case 마지막에 break를 기재하지 않아서 모든 case문을 실행해버리는 문제

▷ fall through 현상으로 조건문이 무용지물이 되기 때문에 case 뒤에 break를 잘 써서 이를 방지한다

▷ default 뒤에는 break를 쓰지 않아도 된다

▷ 의도적으로 fall through를 사용하는 경우

 

const year = 2000; // 2000년은 윤년으로 2월이 29일이다.
const month = 2;
const days = 0;

switch (month) {
  // 의도적으로 break를 생략하여 가로로 나열하여 가독성을 높임
  case 1: case 3: case 5: case 7: case 8: case 10: case 12:
    days = 31;
    break;
// ...

 

label 문

▶ 식별자가 붙은 문

▷ switch 문의 case가 label 문에 해당한다

▷ label 문 활용 사례

 

// foo라는 레이블 식별자가 붙은 레이블 문
foo: console.log('foo');

foo: {
  console.log(1);
  break foo; // foo 레이블 블록문을 탈출한다. (foo 생략하면 안됨)
  console.log(2);
}

console.log('Done!');

 

▷ 중첩 반복문 구조에서 내부 반복문에서 바로 탈출하는 방법

 

// outer라는 식별자가 붙은 레이블 for 문
outer: for (var i = 0; i < 3; i++) {
  for (var j = 0; j < 3; j++) {
    // i + j === 3이면 outer라는 식별자가 붙은 레이블 for 문을 탈출한다. (외부 반복문도 종료)
    if (i + j === 3) break outer;
    console.log(`inner [${i}, ${j}]`);
  }
}

console.log('Done!');

// 식별자를 굳이 outer로 할 필요 없고 아무거나 적으면 된다
// break 뒤의 식별자랑 외부 for문을 지칭하는 식별자랑 같기만 하면됨
'🎨 프론트엔드 공부/JS & TS' 카테고리의 다른 글
  • 10 - 객체 리터럴
  • 09 - 타입 변환과 단축 평가
  • 07 - 연산자
  • JSDoc 레퍼런스 해부하기 - 2
지식물원
지식물원
지식이 자라는 식물원!
  • 지식물원
    지식물원
    지식물원
  • 전체
    오늘
    어제
    • 분류 전체보기 (516)
      • 🎨 프론트엔드 공부 (253)
        • JS & TS (92)
        • HTML & CSS (22)
        • React & Next (49)
        • Vue & Nuxt (22)
        • 기타 (68)
      • 🤓 기술 학습 & 공부 기록 (116)
        • Node.js (0)
        • Python (37)
        • 백엔드 (0)
        • 딥러닝 (1)
        • 컴퓨터 일반 (72)
        • 개발 인프라 (6)
      • 👨‍💻 프로젝트 경험 (6)
        • Work (0)
        • Toy (6)
      • ⚙️ 개발 팁 & 노하우 (21)
        • 프론트엔드 (6)
        • 기타 (15)
      • ☕️ 커리어 & 인터뷰 준비 (88)
        • 코딩 테스트 (88)
      • 📰 기술 트렌드 & 생각 정리 (4)
      • 📚 기타 (25)
        • 마케팅 (15)
        • 비개발서적 (10)
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

    • 모바일 접속 시 코드 하이라이팅 깨질 때
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
지식물원
08 - 제어문
상단으로

티스토리툴바