Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

JavaScriptの文法(制御フロー)

f:id:overworker:20200406080809j:plain:h250

制御フローの例外

語句 内容
break ループを途中で抜ける
continue ループ内で、実施中の繰り返し処理を終了して、次の繰り返し処理に進む。
return 現在の関数を終了する
throw 例外ハンドラでキャッチする必要がある「例外」を示す

制御フロー

while文

while(条件)
    文

以下は無限ループの代表例

while(true){
    console.log('永遠は存在する。');
}

if...else文

if(条件)
    文1
[else
    文2]

do...while文

do
    文
while(条件);
  • は少なくとも1回は実行される

for文

for([初期化],[条件],[再設定])
    文
  • 実施される順序は「①初期化->②条件->③文->④再設定
    • ②条件の結果がfalseの場合、ループを抜ける(③へは進まない。)
      • その他、breakreturnthrowでもループを抜ける。
    • ,を使用すると複数条件をまとめてセットすることができる。

以下は無限ループの代表例

for(;;){
    console.log('永遠は存在する。');
}

switch文

switch(式){
    case 値1:
        文1
        [break;]
    case 値2:
        文2
        [break;]
    ...
    default:
        文default
        [break;]
        
  • 実施される順序は「①:式の評価->②:①の結果と一致するcaseの値を探す。->③:ヒットしたcase以下の文を実施
    • ②で一致する値が見つからない場合
      • defaultがある場合はdefault以下が実行される。
      • defaultがない場合は何も実行されない。
    • switch文のスコープを抜ける条件は以下
      • break文return文continue文throw文が実行される。
      • switch文の一番最後まで到達する。
  • caseの末尾にbreakを記述せずに、次のcaseを記述する制御フローをfall-throughと呼ぶ。
let message = '';
let n = Math.floor(Math.random()*6+1);
switch(n){
  case 1:
  case 3:
  case 5:
    message = '奇数です';
    break;
  default:
    message = '偶数です';
    break;
}
console.log(message);

for...inループ

  • オブジェクトのプロパティのキーに対して処理を繰り返す
for(変数 in オブジェクト)
    文
const profile = {
    name : 'taro',
    sex : 'male',
    age : 25,
    test: {
        test1:1,
        test2:"2",
    },
    sample: {
        sample1,
        sample2,
    }
};
for(let prop in profile){
    if(!profile.hasOwnProperty(prop))continue;
    console.log(prop + ':'+profile[prop]);
}
/*
name:taro
sex:male
age:25
test:[object Object]
sample:sample1,sample2
*/

for...ofループ

  • オブジェクトの各要素に対して処理を繰り返す
for(変数 of オブジェクト)
    文
const check = ['name','sex'];
const profile = {
    name : 'taro',
    sex : 'male',
    age : 25,
};

for(let prop of check){
    // check と一致するキーが存在したら、キーごと削除する。
    if(profile[prop]){
        delete profile[prop];
    }
}
console.log(profile);

参考文献