JavaScript勉強会

JavaScriptの学習日記

【JS学習マラソン】第13回 1.2.10 条件演算子: if, '?'

JavaScript学習マラソンの第13回は、

「現代の JavaScript チュートリアル」パート1の2.10「条件演算子: if, '?'」です。

 

条件演算子: if, '?' https://ja.javascript.info/ifelse

を読んでみます。

 

f:id:jsstudy:20190228002555p:plain

 

プログラムの基本構造

JavaScriptは、プログラミング言語の分類でいうと、「手続型」の言語です。

手続型のプログラミング言語の基本的な動作原理は「構造化プログラミング」という仕組みです。

 

構造化プログラミング - Wikipedia

「三つの構造化文」

  1. 順次 順接、順構造とも言われる。プログラムに記された順に、逐次処理を行なっていく。プログラムの記述とコンピュータの動作経過が一致するプログラム構造である。
  2. 反復 一定の条件が満たされている間処理を繰り返す
  3. 分岐 ある条件が成立するなら処理Aを、そうでなければ処理Bを行なう。

 

状態遷移表による設計手法(5):状態遷移表からの実装 (3/3) - MONOist(モノイスト)

コラム:構造化プログラミングとは
構造化プログラミングは、階層的に抽象化されたプログラムの組み合わせとして、プログラムを記述する手法であり、「順次」「選択」「反復」の3種類の制御構造のみを用いてプログラミングを行います。

f:id:jsstudy:20190227232311j:plain

 

条件分岐の「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として扱われる値が定義されています。

  1. 真偽値の「false」
  2. 数値の「0」
  3. 文字列の「""」(空文字)
  4. null
  5. undefined
  6. NaN

この6つが条件式の結果だった場合、「偽」=falseと同じものとして扱われるルールになってます。

それ以外の値だったら、全部「真」=trueとして扱われるってことですね。

 

なので、ルールを覚える場合は、上記の6つのパターンだけ知っておけばOKと。

重要なのは2と3だと思います。4から6は一まとめにして覚えておけばOKでしょう。

 

その他のif文関連の事項

他にもifに関する基本的な文法がありますが、そういう書き方・機能が用意されていると思って、おいおい覚えていきましょう。

(こういう文法、機能が用意されているというだけの話なので、悩む余地なし) 

など。

 

参考

jsstudy.hatenablog.com

 

jsstudy.hatenablog.com

 

 

 

スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)

スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)