HOWTO · JavaScript

JavaScript 関数を終了する

このチュートリアルでは、JavaScript の関数を早期に終了する方法を紹介します。

このページの内容

このチュートリアルでは、JavaScript の関数を早期に終了する方法について説明します。

特定の条件が満たされたときなど、関数を早期に終了したい状況に遭遇することがよくあります。ただし、JavaScript には、C++、PHP などの他のプログラミング言語のような明示的な関数はありません。さまざまなメソッドを使用すると、関数を早期に終了できます。

JavaScript が関数を自然な流れから早期に終了するために明示的に提供する 3つの主要な方法、つまり return、break、try and catch があります。

JavaScript で return を使用して関数を終了する

特定の条件が満たされたときに return ステートメントを使用して関数を終了できます。return ステートメントのみを使用するか、関数から値を return することで、関数を終了できます。

function divide(a, b) {
  if (b == 0) {
    return 'invalid b';
  } else
    return a / b;
}

console.log(divide(5, 2));
console.log(divide(5, 0));

出力:

2.5
invalid b

この関数では、最初に b が 0 であるかどうかをチェックして、数値を 0 で除算すると無限大が返されるため、無効な割り算であることを除外し、b の値が無効であることを宣言する文字列を返すことで、早めに関数を終了しています。a と b の除算を実行するステートメントは実行されません。

JavaScript で break を使用して関数を終了する

break は伝統的に for ループを終了するために使用されますが、関数内のラベルを使用して関数を終了するために使用できます。

const logIN = () => {
  logIN: {console.log('I get logged in'); break logIN;
          // nothing after this gets executed
          console.log('I don\'t get logged in');}
};
logIN();

出力:

I get logged in

ここでは、ラベル logIN を使用してから、label から break を使用して、関数を先に終了します。

JavaScript で try...catch を使用して関数を終了する

try...catch ブロックを使用して、例外をスローすることで関数を早期に終了できます。

function myFunc() {
  var a = 100;
  try {
    if (typeof (a) != 'string') throw (a + ' is not a string');
  } catch (e) {
    alert('Error: ' + e);
  }

  a++;
  return a;
}
myFunc();

出力:

Error: 100 is not a string

通常のフローを中断するために例外をスローし、catch ブロックがこの例外をキャッチしてから、他のすべてのステートメントを実行せずに関数を終了します。

すべての主要なブラウザは、これら 3つの方法すべてをサポートしています。