GitBookjs-primer条件分岐この章ではif文やswitch文を使った条件分岐について学んでいきます。条件分岐を使うことで、特定の条件を満たすかどうかで行う処理を変更できます。if文if文を使うことで、プログラム内に条件分岐を書けます。if文は次のような構文が基本形となります。条件式の評価結果がtrueであるならば、実行する文が実行されます。実行する文;}次のコードでは条件式がtrueであるため、ifの中身が実行されます。ブロックを省略できます。どこまでがif文かがわかりにくくなるため、常にブロックで囲むことを推奨します。console.log("この行は実行されます");if文は条件式に比較演算子などを使い、その比較結果によって処理を分岐するためによく使われます。次のコードでは、xが10よりも大きな値である場合に、if文の中身が実行されます。console.log("xは10より大きな値です");}if文の条件式にはtrueまたはfalseといった真偽値以外の値も指定できます。真偽値以外の値の場合、その値を暗黙的に真偽値へ変換してから、条件式として判定します。真偽値へ変換するとtrueとなる値の種類は多いため、逆に変換した結果がfalseとなる値を覚えるのが簡単です。次の値は真偽値へと変換するとfalseとなるため、これらの値はfalsyと呼ばれます(「暗黙的な型変換」の章を参照)。falseundefinednull0NaN""(空文字列)これ以外の値は真偽値に変換するとtrueになります。そのため、"文字列"や0以外の数値などを条件式に指定した場合は、trueへと変換してから条件式として判定します。次のコードは、条件式がtrueへと変換されるため、if文の中身が実行されます。console.log("この行は実行されます");}falsyな値を条件式に指定した場合は、falseへと変換されます。次のコードは、条件式がfalseへと変換されるため、if文の中身は実行されません。if文を使うことで書けます。次の3つの条件分岐するプログラムを考えます。if文を使うことで3つの条件を書いています。2015"が出力されます。if文では、条件に一致した場合の処理をブロック内に書いていました。一方で条件に一致しなかった場合の処理は、else文を使うことで書けます。次のコードでは、変数numの数値が10より大きいかを判定しています。numの値は10以下であるため、else文で書いた処理が実行されます。if文、else文はネストして書けます。次のように複数の条件を満たすかどうかをif文のネストとして表現できます。}}ネストしたif文の例として、今年がうるう年かを判定してみましょう。うるう年の条件は次のとおりです。このうるう年の条件をif文で表現すると次のように書けます。console.log(`${year}年はうるう年ではありません`);}条件を上から順に書き下したため、ネストが深い文となってしまっています。一般的にはネストは浅いほうが、読みやすいコードとなります。条件を少し読み解くと、400で割り切れる年は無条件にうるう年であることがわかります。そのため、条件を並び替えることで、ネストするif文なしに書くことができます。console.log(`${year}年はうるう年ではありません`);}switch文switch文は、次のような構文で式の評価結果が指定した値である場合に行う処理を並べて書きます。後はここから実行されるswitch文はif文と同様に式の評価結果に基づく条件分岐を扱います。break文は、switch文から抜けてswitch文の次の文から実行するためのものです。"ES6":に続く文が実行されます。出力されるこれはif文で次のように書いた場合と同じ結果になります。console.log("しらないバージョンです");}switch文はやや複雑な仕組みであるため、どのように処理されているかを見ていきます。case}次に式の評価結果が厳密等価演算子(===)で一致するラベルを探索します。一致するラベルが存在する場合は、そのcase節を実行します。一致するラベルが存在しない場合は、default節が実行されます。break;}break文switch文のcase節では基本的にbreak;を使ってswitch文を抜けるようにします。このbreak;は省略が可能ですが、省略した場合、後ろに続くcase節が条件に関係なく実行されます。*/このようにbreak;を忘れてしまうと意図しないcase節が実行されてしまいます。別の方法で書けないかを考えるべきサインとなります。switch文はif文の代用として使うのではなく、次のように関数と組み合わせて条件に対する値を返すパターンとして使うことが多いです。関数については「関数と宣言」の章で紹介します。2015"まとめこの章では条件分岐について学びました。if文、else文で条件分岐した処理を扱える条件式に指定した値は真偽値へと変換してから判定される真偽値に変換するとfalseとなる値をfalsyと呼ぶswitch文とcase節、default節を組み合わせて条件分岐した処理を扱えるcase節でbreak文しない場合は引き続きcase節が実行される条件分岐にはif文やswitch文を利用します。複雑な条件を定義する場合には、if文のネストが深くなりやすいです。そのような場合には、条件式自体を見直してよりシンプルな条件にできないかを考えてみることも重要です。