夢は小さいほどいいと思っているんです。本気になれるから。

夢を持つことが大事なんじゃなく、本気になるのが大事。(糸井重里)

JavaScriptの基本的な書き方 制御命令_ループ(反復処理)と例外処理

プログラミングにおいては、写経が何かと有効であると信じて、まず基本的で具体的なサンプルコードを、とにかく書くことでその所作を身に付けようと思います。
今度はループと例外処理です。

反復処理には主に下記の4つがあります。

  • while文
  • do...while文
  • for文
  • for...in文

条件式によってループを制御する while / do...while文

while / do...while文は与えられた条件文がtrueである間は、ループを繰り返します。

See the Pen 20160804_Js_while by r.shimizu (@r_shimizu) on CodePen.

See the Pen 20160804_Js_do...while by r.shimizu (@r_shimizu) on CodePen.

上記の両者、実行結果は同じですが、仮に「x=10」の場合だと、結果が変わります。

  • while文の実行結果は 何も出力されません(コードの初期に条件式があり、判定ではじかれたため_前置判定)
  • do...while文の実行結果は「xの値は10」というメッセージが一回だけ表示されます。(必ず一回は処理が入るのが特徴_後置判定)

指定回数だけループ処理する for文

あらかじめ指定された回数だけ繰り返し処理をおこなうのがfor文です。

See the Pen 20160804_for by r.shimizu (@r_shimizu) on CodePen.


配列内の要素を順に処理する for...in文

構文

for (仮変数 in 配列 / オブジェクト) {
 ループ内で実行するコマンド ;
}

仮変数には、配列 / 連想配列やオブジェクトから要素のインデックス番号やキー名、メンバ名が格納されて、for...in ブロックの中で要素値を参照する際に使用することができます。
仮変数に格納されるのは、要素値そのものではありません。

See the Pen 20160804_for...in by r.shimizu (@r_shimizu) on CodePen.

上記のコードはサンプルの説明の便宜上、for...inループを利用して通常配列の内容を走査していますが

  • コードがシンプルにならない
  • コードによっては正しく動かないことがある

という理由から、一般的には通常配列の内容をfor...inループでは取り出すべきではありません。

例外処理

アプリを実行してると、「数値を受け取ることを想定した関数に文字列が渡された」などなど、想定しないことが起こることがあります。
もちろん未然に防げる場合と、そうでない場合があります。例えば外部要因に依存する処理がその例です。これを完全に防ぐことはなかなか大変です。
そんな時に、例外処理が役立ちます。

構文

try {
  例外が発生するかもしれない命令(群)
} catch {
  例外が発生した場合の命令(群)
} [finally{
  例外の有無に関わらず、最終的に実行される命令(群)
}]


参考書籍 JavaScript本格入門