JavaScript, if...else 문 대안(한국어)

JavaScript에서 조건문을 사용할 때 if...else 문 이외에도 여러 가지 대안이 존재합니다. 여기에서는 if...else 문을 대체할 수 있는 몇 가지 방법을 알아보겠습니다.

Method

  1. Switch 문

  2. 삼항 연산자 (Ternary Operator)

  3. Jump / Dispatch Table

  4. Immediately Invoked Function Expressions


Switch 문

Switch 문은 특정 표현식의 값을 찾고 해당하는 값에 연결된 코드 블록을 실행합니다. 이는 여러 가지 조건을 비교할 때 유용합니다.

Switch

let day = "Monday";
switch (day) {
    case "Monday":
        console.log("It's the beginning of the week.");
        break;
    case "Friday":
        console.log("It's almost the weekend!");
        break;
    default:
        console.log("It's a regular day.");
}

삼항 연산자 (Ternary Operator)

삼항 연산자는 조건을 확인하고 조건이 참이면 첫 번째 표현식을 실행하고, 그렇지 않으면 두 번째 표현식을 실행합니다.

Ternary Operator

let age = 18;
let status = (age >= 18) ? "Adult" : "Minor";
console.log(status); // 출력: "Adult"

Jump / Dispatch Table

점프 또는 디스패치 테이블은 값-함수 쌍을 객체에 저장하여 값에 기반하여 빠르게 함수를 가져오고 실행하는 방법입니다. 이는 복잡한 조건 로직을 단순화할 수 있습니다.

Jump / Dispatch Table

const operations = {
    '+': (a, b) => a + b,
    '-': (a, b) => a - b,
    '*': (a, b) => a * b,
    '/': (a, b) => a / b
};

let operator = '+';
let result = operations[operator](5, 3);
console.log(result); // 8

Dynamic Dispatch

동적 디스패치는 객체의 유형에 기반하여 메소드의 특정 버전을 실행하는 방법입니다. 이는 객체 지향 프로그래밍에서 주로 사용됩니다.

Dynamic Dispatch

class Shape {
    draw() {
        console.log("Drawing a shape.");
    }
}

class Circle extends Shape {
    draw() {
        console.log("Drawing a circle.");
    }
}

class Square extends Shape {
    draw() {
        console.log("Drawing a square.");
    }
}

let shape = new Circle();
shape.draw(); // 출력: "Drawing a circle."

이러한 대안들은 코드를 더 간결하고 읽기 쉽게 만들어주며, 특정 상황에서 더 나은 성능을 제공할 수 있습니다. 개발자로서 이러한 다양한 접근 방식을 익히면서 상황에 맞게 적절한 방법을 선택하는 방법을 선택할 수 있었습니다.