JavaScript 조건문

2025. 5. 18. 08:06·Programing/javascript
반응형

조건문은 프로그램의 흐름을 제어하는 핵심 요소입니다. JavaScript에서는 다양한 조건문과 표현식을 통해 유연하고 명확한 조건 처리를 할 수 있습니다. 이 글에서는 조건문의 심화 사용법과 실수하기 쉬운 부분들을 다룹니다.


1. if / else if / else 기본 구조

const score = 85;

if (score >= 90) {
  console.log("A");
} else if (score >= 80) {
  console.log("B");
} else {
  console.log("C 이하");
}
  • 조건은 위에서 아래로 평가되며, 가장 먼저 true가 되는 블록이 실행됩니다.

2. 삼항 연산자 (조건 ? 참 : 거짓)

const age = 18;
const status = age >= 18 ? "성인" : "미성년자";
  • 간단한 조건 분기에는 if 대신 삼항 연산자를 사용하는 것이 가독성이 좋을 수 있습니다.
  • 중첩된 삼항은 피하고 if로 대체하는 것이 낫습니다.

3. switch 문

const device = "mobile";

switch (device) {
  case "desktop":
    console.log("PC 화면");
    break;
  case "mobile":
    console.log("모바일 화면");
    break;
  default:
    console.log("알 수 없음");
}
  • 다중 분기 조건이 동일한 변수일 경우 if보다 switch가 명확함
  • break를 빼먹으면 fall-through가 발생하므로 주의

4. truthy / falsy 값의 이해

if ([]) console.log("배열은 truthy");
if ("") console.log("이 문자열은 실행되지 않음");
  • falsy 값: false, 0, "", null, undefined, NaN
  • 그 외는 대부분 truthy

if (value) 형태는 존재 유무, 유효성 검사에 널리 사용됨


5. 단축 평가 (Short-circuit Evaluation)

const username = input || "Guest";
const isLoggedIn = user && user.loggedIn;
  • ||는 좌측이 falsy면 우측 반환
  • &&는 좌측이 truthy면 우측 반환

→ 조건문 없이 기본값을 설정하거나 안전하게 접근할 때 사용 가능


6. 옵셔널 체이닝 (?.)과 널 병합 연산자 (??)

const name = user?.profile?.name;
const nickname = user.nickname ?? "익명";
  • ?.는 객체가 undefined/null인 경우 오류 없이 undefined 반환
  • ??는 좌측이 null/undefined일 때만 우측 반환 (||보다 명확함)

7. 조건식 안에서의 할당 실수

let value = 0;
if (value = 5) console.log("할당입니다"); // 버그 발생 가능
  • ==, === 대신 =를 쓰는 실수는 매우 흔함
  • 비교 연산자는 항상 두 개 이상의 등호 사용하기

8. 조건문의 함수화와 early return

function checkLogin(user) {
  if (!user) return "로그인 필요";
  if (!user.active) return "비활성 계정";
  return "접속 허용";
}
  • 중첩된 조건문을 줄이고 가독성을 높이기 위한 패턴
  • if 블록보다는 조건별 빠른 종료(return)를 선호하는 흐름

마무리

조건문은 단순한 분기를 넘어서, 프로그램의 안정성과 가독성을 좌우하는 요소입니다. truthy/falsy 개념, 단축 평가, 옵셔널 체이닝 등 현대 JavaScript의 기능들을 적극 활용하여 더 깔끔하고 안정적인 조건 분기를 설계해보세요.

반응형

'Programing > javascript' 카테고리의 다른 글

JavaScript로 구현하는 금액의 영어 단위 변환 (Number to Words)  (0) 2025.05.27
기수 정렬 (Radix Sort) 설명과 JavaScript 예제  (1) 2025.05.22
힙 정렬 (Heap Sort) 설명과 JavaScript 예제  (0) 2025.05.22
JavaScript 비교 연산자  (1) 2025.05.18
JavaScript 반복문  (0) 2025.05.18
함수 선언식과 함수 표현식의 차이  (2) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법12  (0) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법11  (1) 2025.05.05
'Programing/javascript' 카테고리의 다른 글
  • 힙 정렬 (Heap Sort) 설명과 JavaScript 예제
  • JavaScript 비교 연산자
  • JavaScript 반복문
  • 함수 선언식과 함수 표현식의 차이
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (437) N
      • 금융 (55) N
      • Programing (268) N
        • Algorithm (28)
        • API (2)
        • javascript (121)
        • CSS (6)
        • HTML (10)
        • PHP (15) N
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (17)
        • MS-SQL (1)
        • MySQL (12)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (5)
      • IT 일반 (15)
      • 리뷰 (36)
        • Book (17)
        • 제품 (1)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (31) N
        • 회고 (2) N
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    IT 관련
    자바스크립트
    자바
    jsp
    Java
    자바스크립트유틸
    IT블로그
    블로그
    iT's MY LiFE
    사고 싶은 책
    위시리스트
    It
    SQL
    JavaScript
    디자인패턴
    php
    IT·컴퓨터
    기초
    js패턴
    읽고 싶은 책
  • hELLO· Designed By정상우.v4.10.3
Dongkkase
JavaScript 조건문
상단으로

티스토리툴바