備忘録的プログラミングリファレンス

制御構文(Control Flow Statements)

 制御構文(Control Flow Statements)は、あらかじめ用意されている制御構造で、プログラムの流れをコントロールする目的で用いる文(Statements)です。

JavaScriptの制御構文には、デバグ、条件分岐、繰り返し、繰り返し制御、呼び出し元へ返すがあります。

繰り返し
do{...}while();繰り返し、条件によって出る
for(){...}定義数の繰り返し
for(number_of_propaty in object){...}繰り返し、オブジェクトのプロパティ数が条件
for(value of array){...}繰り返し、配列数が条件
while(){...}繰り返し、条件によって出る
continue;以降のコードを飛ばして次の繰り返しを行う
条件分岐
if(){...}(else if)else{...}条件分岐
switch(){case : break; ... default: ... ;}条件分岐
break;繰り返しや条件分岐処理から出る
割り込み処理
try{...}catch(){...}(finally{...})割り込みエラー制御
throw割り込みエラー制御で任意の処理ができる
デバグ
debugger;デバグで用いる
関数
return();呼び出し元に戻り値を返す

繰り返し

do{...}while()

 do whileは、条件によって終了する繰り返しステートメントです。繰り返し回数が決まっていない場合に使います。
 繰り返しコードが実行されてから評価します。そのために、必ず1回以上はdo{...}内のコードが実行されます。

var tst_txt;
var i = 0;
do {
  tst_txt += "<br />number:" + i;
  i++;
}
while (i < 12); 

for(){...}

 forは、定数回の繰り返しステートメントです。繰り返し回数が分かっている場合に使います。

var tst_txt;
var i;
for( i = 0; i < 12 ; i++ ){
  tst_txt += "<br />number:" + i;
} 

for(number_of_propaty in object){...}

 for inステートメントはオブジェクトのプロパティ数分だけ繰り返します。都度取得できる値はプロパティ番号です。プロパティの値やプロパティ名を取得するのに利用します。

var snfrn_city = {cityName:"San Francisco", population:85.3, color:"blue"}
for( i in snfrn_city ){
  tst_txt += snfrn_city[i] + " ";		// tst_txt value is 'San Francisco 85.3 blue'
} 

for(value of array){...}

 for ofステートメントは配列数分だけ繰り返します。都度取得できる値は、配列の値です。

var city = ["San Francisco", "New York", "Tokyo"];
for( i of snfrn_city ){
  tst_txt += i + " ";		// "San Francisco" "New York" "Tokyo"
} 

continue

 continueステートメントは、それ以降のコードを飛ばして次の繰り返しを行うための構文です。

for (i = 0; i < 12; i++) {
  if (i === 5 || i === 10 ) {
    continue;
  }
  ...
}

条件分岐

if(){...}(else if)else{...}

 ifステートメントは、条件分岐です。条件を評価してtrueなら実行されifステートメントの処理は終了します。

 最後にelseステートメントによって、条件に該当しなかった場合の処理が行われます。

if ( i < 12 ) {
  ...
} else if ( i < 18 ) {	// 先の条件が評価されるのでi >= 12 && i < 18と評価される
  ...
} else {
  ...
}

switch(){case : break; ... default: ... ;}

 switchステートメントは、ケースごとの条件よって分岐処理します。複数の条件を一覧にできます。

 breakステートメントでswitchステートメント処理から抜けることができます。もしなければ、switchステートメントの条件分岐処理を続けます。

 最後のdeafultによって条件に該当しなかった場合の処理が行われます。

switch(expression) {
	case n:
		...;
	break;
	case n:
		...;
	break;
	default:
		...;
}

while(){...}

 whileは、条件によって終了する繰り返しステートメントです。繰り返し回数が決まっていない場合に使います。
 評価が先のために{...}内のコードが実行されないこともあります。

var tst_txt;
var i = 0;
while(i < 12){
  tst_txt += "<br />number:" + i;
  i++;
}

break

 breakステートメントは、switchといった分岐処理や、for、whileなどの繰り返し処理から出るための構文です。

for (i = 0; i < 12; i++) {
  if (i === 6) {
    break;
  }
  ...
}

割り込み処理

try{...}catch(error){...}(finally{...})

 tryステートメントによって、割り込み処理を行うことができます。

 try以下に通常のコードを編集し、そのコードにエラーが発生するとcatch以下のコードが実行されます。

throw

 throwステートメントは、割り込み処理tryステートメントで利用します。

 割り込み処理のtryステートメントでエラーが起こると、処理を停止しエラーメッセージを表示するだけですが、throwステートメントによって処理を任意に編集することができます。

デバグ

debugger

 debuggerステートメントは、デバグのためのブレイクポイントとして利用できます。

 debuggerステートメントで、JavaScriptの実行を停止し、可能ならブラウザのデバグ機能を呼び出します。

 デバグを使用できない場合はdebuggerステートメントは機能しません。

debugger;

関数

return

 returnステートメントによって、関数の呼び出し元に戻り値を返します。JavaScriptではreturnステートメントがない場合は戻り値がない、プロシージャとして動作します。

return( re_ );