JavaScriptの学習・参考リファレンス/ドキュメント

JavaScript、ECMAScriptの学習と参考メモ 入門~初心者~中級者~上級者を目指して

制御フロー

JavaScriptでプログラミングを行う際の条件による処理の分岐など制御フローに関する説明です。

if, else

ifは指定された条件がtrueの場合に文を実行します。

let a = 0;
if(a === 0){
  console.log('a is zero');
}

elseを使うとifの条件部がfalseの場合に実行される文を指定できます。

let a = 1;
if(a === 0){
  console.log('a is zero');
}else{
  console.log('a is not zero');
}

else ifで条件部を複数指定することが可能です。

let a = 1;
if(a === 0){
  console.log('a is zero');
}else if(a === 1){
  console.log('a is one');
}else{
  console.log('a is not zero , one');
}

条件式の値は以下がfalseとして判定され、それ以外がtrueと判定されます。

  • false
  • undefined
  • null
  • 0
  • NaN
  • ’’ - 空の文字列

switch

式の値によって処理を複数に分岐する場合は、switch文が使えます。

defaultはcase節で一致する対象がない場合に実行されます。 breakせずに、case節をつなげると複数の分岐で同じ処理を行う事ができます。

const str = 'two';
switch (str) {
  case 'one':
    console.log('string is one');
    break;
  case 'two':
  case 'three':
    console.log('string is two or three');
    break;
  default:
    console.log('string is not one , two ,three');
}

try catch finaly

例外の処理はtry-catch-finaly文で行えます。

try内で例外が発生すると、catchの文が呼ばれ、最後にfinallyの文が呼び出されます。 catchとfinalyはどちらか一方だけを指定することも可能です。

例外に対して処理は行わないけれども、必ず行いたい処理がある場合は try-finallyの形で使う事になります。

try {
  let a = null;
  a.toString();
  let b = c;
} catch (e) {
  if (e instanceof TypeError) {
    console.log(`TypeError Catch! ${e}`);
  } else if (e instanceof ReferenceError ) {
    console.log(`ReferenceError Catch! ${e}`);
  } else {
    console.log(e);
  }
} finally {
    console.log('finally');  
}

throw

throw文を使うとユーザー定義の例外を発生させる事ができます。

let f = function (n){
  if(!Number.isFinite(n)){
    throw 'n is not a number';
  }
  return n * n ;
};

try {
  f('123');
} catch (e) {
  console.log(e);
}
作成日 : 2020年06月07日