return

returnは、関数の実行を終了して、関数の呼び出し元に返す値を指定します。

構文

return [expression]; 
expression
返す式。もし省略されたなら、undefined が代わりに返ります。

解説

関数内で return 文を呼び出すと、関数の実行が停止します。値が指定されていれば、その値を関数の呼び出し元に返します。例えば、以下の関数は引数 x が数値の場合、 x の平方を返します。

function square(x) {
   return x * x;
}
var demo = square(3);
// demo will equal 9

値が省略された場合は undefined が代わりに返されます。

以下の return 文はすべて、関数の実行を中断します。

return;
return true;
return false;
return x;
return x + y / 3;

自動セミコロン挿入

return 文は自動セミコロン挿入 (ASI) の影響を受けます。return キーワードと式の間に改行文字を置くことはできません。

return
a + b;

は ASI によって以下のように変換されます。

return; 
a + b;

コンソールに "unreachable code after return statement" という警告が現れます。

Firefox 40 以降では、 return 文の後に到達できないコードがある場合に、コンソールに警告が表示されます。

括弧を使用すると、この問題を防ぐ (ASI を抑止する) ことができます。

return (
  a + b
);

関数を中断する

return を呼び出した時点で、関数の実行が即座に終了します。

function counter() {
  for (var count = 1; ; count++) {  // 無限ループ
    console.log(count + 'A'); // 5 まで
      if (count === 5) {          
        return;
      }
      console.log(count + 'B');  // 4 まで
    }
  console.log(count + 'C');  // 現れない
}

counter();

// 出力:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

関数を返す

クロージャの記事もご覧ください。

function magic() {
  return function calc(x) { return x * 42; };
}

var answer = magic();
answer(1337); // 56154

仕様書

仕様書
ECMAScript (ECMA-262)
Return statement の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
returnChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100

凡例

完全対応  
完全対応

関連情報