Javascript独学ノート(三)

2616 ワード

フロー制御文-プログラムは、上から下の順番で実行されます.フロー制御文によって、プログラムの実行順序を変更したり、あるセグメントのプログラムを繰り返し実行したりできます.分類:1.条件判定文2.条件分岐文3.循環文
条件判定文はif文です.プログラムに実行経路を選択させることができます.if文には3つの形式があります.文法1:if(条件式){文...}実行フロー:if文実行時は条件式を先に求めて判断します.もし値がtrueであれば、if後の文を実行します.値がfalseであれば、実行しません.
var a = 5, b = 3;
if(a>b){
	alert('a  b');
}
構文二:if(条件式){文...}else{文...}実行フロー:if...else文実行時に条件式を求めて判断します.もし値がtrueであれば、if後の文を実行します.値がfalseであれば、else後の文を実行します.
var a = 5, b = 3;
if(a>b){
	alert('a  b');
}else{
	alert('a  b');
}
文法3:if(条件式){文...}else if(条件式){文...}-実行フロー-if...else if...else文は、上から下へと条件式を逐次判定しますが、判定結果がtrueであれば、前if以降の文を実行し、完了後の文を実行します.判断結果がfalseであれば、trueであることが判明するまで下の判定を続けます.すべての条件式がfalseであれば、else後の文を実行します.
var a = 5, b = 3;
if(a>b){
	alert('a  b');
}else if(a=b){
	alert('a  b');
}else{
	alert('a  b');
}
switch文文法:switch(条件式){case式:文…break;case式:文…break;case式式:文…break;case式:文…break;default:文…break;}
実行フロー:switch...case...文は実行時にcase後の表式の値とswitch後の表式の値を逐次比較します.比較結果がfalseであれば、下の比較を続けます.比較結果がtrueであれば、現在のcaseから下のコードを実行します.すべてのcaseがfalseであると判断した場合、defaultからコードを実行します.
//            ,            ,               。
var a = 'abc';
switch(typeof a){
	case 'number' :
		return a.toString();
		break;
	case 'string':
		return '"' + a + '"';
		break;
	default:
		return String(a);
		
}
循環文-循環文によって、いくつかの語句が繰り返し実行されます.何度も-while循環-文法:while(条件式){文...--実行フロー:while文は実行時に条件式を求めて判断します.判断結果がfalseであれば、ループを終了します.判断結果がtrueであれば、循環体を実行します.循環体の実行が完了し、条件式の評価を継続します.これに類推します.
ex:
			var a = 0;
			while (a<5) {
				console.log(a);              //0~4
				a++;
			}
ド…whileサイクル-文法:do{文...}while(条件式)-実行フロード...whileは実行時に、先にdo後の循環体を実行し、条件式を判断し、判断結果がfalseであればループを終了します.判定結果がtrueであれば、循環体を継続して実行します.これに類推します.
			var a = 10;

			do{
				console.log(a);     //10        
			}while (a>20) {
				a++;
			}
ド…whileとwhileの違い:while:先に判断してからdo…whileを実行します.先に実行してから判断します.whileは循環体が少なくとも一回実行することを確保できます.for循環-文法:for(初期化式;条件式;更新式){文...}実行フロー:まず初期化式を行い、変数を初期化し、条件式を求めて判断し、falseであればループを終了します.判定結果がtrueであれば、循環体循環体の実行が完了し、更新式を実行します.変数を更新します.式を更新して繰り返します.
ex:
//   for      100    7     。
for(var i =0; i<100; i++) {
	if(i%7==0){
		console.log(i);
	}
}
追加:for…inサイクルfor…inサイクルは、エニュメレート・オブジェクトを巡回するのに便利な属性メンバーです.
ex:
var Obj = {
				x : 1,
				y : 2,
				'name' : 'BanesLi',
				'age' : 26
			}
			for(o in Obj) {
				console.log(Obj[o]);     //   1,2,BanesLi,26
			}