05 ControlSyntax - iruma-tea/dokushujs GitHub Wiki

5. 制御構文

5.1 条件分岐

条件分岐は、何らかの条件をもとに実行する処理の流れを分岐する。

5.1.1 if 文

[構文] if文の記法
if (条件式) {
    if ブロック  ------ 条件式が真(truthy)の場合に実行されるブロック
}

5.1.2 if...else 文

[構文] if...else文の記法
if (条件式) {
    if ブロック  ------ 条件式が真(truthy)の場合に実行されるブロック
} else {
    else ブロック ----- 条件式が偽(falsy)の場合に実行されるブロック
}

5.1.3 if...else 文のチェーン

[構文] if...else文のチェーンの記法
if (条件式A) {
    if ブロック  ------ 条件式Aが真(truthy)の場合に実行されるブロック
} else if (条件式B) {
    else if ブロック ----- 条件式Aがfalsyかつ、条件式Bが真(truthy)の場合に実行されるブロック
} else {
    else ブロック ----- 条件式が偽(falsy)の場合に実行されるブロック
}

5.1.6 switch文

switch文では、条件式に渡した値がcase節と一致した場合に、それ以降のコードを実行します。
条件式の値がcase節のどれも一致しない場合には、default節に続くコードが実行される。

[構文] switch文の記法
switch(条件式) {
    case 値1: ------ case1(条件式 === 値1)
        [break];
    case 値2: ------ case2(条件式 === 値2)
        [break];
    default:
        条件式の値が値1、値2に一致しない場合に実行されるコード
}

5.2 例外処理

プログラムの実行には、エラーがつきものです。プログラムにおけるエラーは例外(Exeception)とも呼び、
例外が発生したときに実行する処理は例外処理と呼びます。

5.2.3. try/catch/finally 構文

[構文] 基本的なtry/catch/finally 構文の記法
try {
    例外が発生する可能性のある処理
} catch (例外識別子) {
    例外が発生した時の処理
} finally {
    例外の発生にかかわらず、必ず実行される処理
}

5.2.4 明示的な例外のスロー

意図的に例外を発生させたい場合には、throwというキーワードを使用する。
throwは日本語で「投げる」という意味なので、プログラムで例外を発生させることを「例外を投げる」とも言います。

[構文] throwの記法
try {
    throw 例外識別子;
} catch (例外識別子) {
    例外発生時の処理
}

5.3. 基本的な繰り返し処理

5.3.1 While文

while文は、条件がtruthyのときに処理を繰り返し、falsyが取得されたときに処理を抜けます。

[構文] while文の記法
while(条件式) {
    while ブロック ---- 条件式がtruthyの場合に繰り返し処理されるコードを記述
}

5.3.2 for文

for文を使って繰り返し(ループ)処理を記述する場合は、「初期化処理」、「ループ継続のための条件式」、「ループごとの最後に実行される式」
をセミコロンで区切る。

[構文] for文の記法
for (①初期化処理; ②ループ継続の処理; ③ループごとの最後に実行される式) {
    ②の式がtruthyの場合に繰り返し処理されるコードを記述
}

5.3.4 for ... in 文

for ... in 文は、オブジェクトの要素に対して繰り返し処理を行うときに使う。

[構文]for...in文の記法
for (const key in obj) {
    オブジェクトの各プロパティに対する繰り返し処理
}

key: オブジェクトのプロティが1つずつ渡されます。
obj: オブジェクトや配列を設定できる。

5.3.7 for...of 文

for...of文では、反復可能オブジェクトに対して、繰り返し処理を記述できる。

[構文] for ... of 文の記法
for (const value of iterable) {
    反復可能なオブジェクトの各要素に対する繰り返し処理
}

value: 反復可能オブジェクトの種類によって、渡される値が変わる。配列やSetの場合は値が渡される。
Mapの場合はプロパティと値が対になった配列が[プロパティ, ]という形式で渡される。
⚠️ **GitHub.com Fallback** ⚠️