JavaScript、if...else 文の代替方法(日本語)

JavaScript で条件分岐を行う際、if...else 文以外にもさまざまな代替方法が存在します。ここでは、if...else 文を代替できるいくつかの方法を紹介します。

方法

  1. switch 文

  2. 三項演算子

  3. ジャンプ/ディスパッチテーブル

  4. 即時呼び出し関数式


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)

三項演算子は条件を確認し、条件が真ならば最初の式を実行し、そうでなければ2番目の式を実行します。

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."

これらの代替手法は、コードをより簡潔で読みやすくし、特定の状況でより優れたパフォーマンスを提供することができます。開発者として、これらのさまざまなアプローチを学びながら、状況に応じて適切な方法を選択する方法を選ぶことができました。