【JS学習マラソン】第13回 1.2.10 条件演算子: if, '?'
JavaScript学習マラソンの第13回は、
「現代の JavaScript チュートリアル」パート1の2.10「条件演算子: if, '?'」です。
条件演算子: if, '?' https://ja.javascript.info/ifelse
を読んでみます。
プログラムの基本構造
JavaScriptは、プログラミング言語の分類でいうと、「手続型」の言語です。
手続型のプログラミング言語の基本的な動作原理は「構造化プログラミング」という仕組みです。
「三つの構造化文」
- 順次 順接、順構造とも言われる。プログラムに記された順に、逐次処理を行なっていく。プログラムの記述とコンピュータの動作経過が一致するプログラム構造である。
- 反復 一定の条件が満たされている間処理を繰り返す。
- 分岐 ある条件が成立するなら処理Aを、そうでなければ処理Bを行なう。
状態遷移表による設計手法(5):状態遷移表からの実装 (3/3) - MONOist(モノイスト)
コラム:構造化プログラミングとは
構造化プログラミングは、階層的に抽象化されたプログラムの組み合わせとして、プログラムを記述する手法であり、「順次」「選択」「反復」の3種類の制御構造のみを用いてプログラミングを行います。
条件分岐の「if」
構造化プログラミングの基本機能の1つである「分岐」(選択)は、JavaScriptの場合、「if」文で書けます。
条件分岐には、if分の他にもswitch文などもあります。
(関数型言語の場合、条件分岐の仕組みとして「パターンマッチング」の構文なども用意されています。)
条件分岐はプログラムの動作の基本なので、「if」文の書き方は重要ですね。
ifがなかったら、プログラムを書くのが難しいでしょう。
if文に相当する機能は、どのプログラミング言語でもたいてい用意されています。
それでは、JavaScriptのifを見てみましょう。
ifの基本形
基本形は、
if (条件式) {
処理A;
}
という書き方です。
これは、
「条件式」が成立するときは、処理Aが実行される。
「条件式」が成立しないときは、処理Aが実行されないでスルーされる。
という仕組みになってます。
条件式の部分をよく理解する
チュートリアルの説明を見てみましょう。
Boolean 変換
if (…) 文は括弧の中の式を評価し、Boolean型に変換します。
チャプター 型変換 の変換ルールを思い出してみましょう:
- 数値 0, 空文字 "", null, undefined そして NaN は false になります。そのため、これらは “偽とみなされる” 値とよばれています。
- 他の値は true になるため、“真とみなされる” 値と呼ばれます。
条件式が「true」(真)になるとき
if (true) {処理A; // 実行される
}
条件式が「false」(偽)になるとき
if (false) {
処理A; // 実行されない
}
どのような条件式の値(計算結果)が、真として扱われるか?偽として扱われるか?はプログラミング言語によって定義が違ったりしています。
JavaScriptの場合、falseとして扱われる値が定義されています。
- 真偽値の「false」
- 数値の「0」
- 文字列の「""」(空文字)
- null
- undefined
- NaN
この6つが条件式の結果だった場合、「偽」=falseと同じものとして扱われるルールになってます。
それ以外の値だったら、全部「真」=trueとして扱われるってことですね。
なので、ルールを覚える場合は、上記の6つのパターンだけ知っておけばOKと。
重要なのは2と3だと思います。4から6は一まとめにして覚えておけばOKでしょう。
その他のif文関連の事項
他にもifに関する基本的な文法がありますが、そういう書き方・機能が用意されていると思って、おいおい覚えていきましょう。
(こういう文法、機能が用意されているというだけの話なので、悩む余地なし)
- else句の使い方
- else if句の使い方
- 三項演算子
など。
参考
スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,及川卓也
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る