return
文は、関数の実行を終了して、関数の呼び出し元に返す値を指定します。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
構文
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
仕様書
ブラウザーの互換性
BCD tables only load in the browser
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。