戻り値は、関数の実行が完了した時に呼び出し元に渡される値のことです。
JavaScriptでは、関数の中にreturn文を使って戻り値を指定します。
今回は、戻り値とは何か、またその使い方について解説します。
戻り値
関数を呼び出した時に、関数の呼び出し元に渡される値のことを戻り値と呼びます。返り値と呼ばれることもあります。
return文を使い、関数の実行結果として任意の値を返すことができます。
関数を作る際には、必ずしも戻り値を設定する必要はありません。
通常、戻り値を設定しない関数を実行すると、処理はそこで終了します。
関数を作る → 関数を呼び出す → 関数が実行される
しかし多くの場合、一部の処理の結果を更に他の処理で使用するなど、複数の処理と連携させプログラムを作ります。そこで戻り値が能力を発揮します。
... 関数が実行される → 関数の戻り値が渡される → 関数の戻り値を使って新しい関数を作る
また、戻り値は引数とセットで使われることが多いです。
そのため、戻り値と引数は混同されやすいですが、それぞれの関数との関係性をイメージすると分かりやすいです。
- 引数:関数に引き渡す値(材料)
- 関数:処理そのもの(機能)
- 戻り値:関数から返される値(結果)
ここでは、かんたんにお米を炊く流れに例えてみます。
- 材料:お米と水
- 機能:炊飯器で炊く
- 結果:炊き立てのご飯
このように、材料である引数、材料を処理する機能である関数、また、その結果である戻り値がイメージできます。
戻り値の使い方
ここからは、実際に戻り値の使い方を解説していきます。
戻り値を扱うには、return
キーワードを用います。
return文の後には、値や式を記述することが可能です。
function 関数名(仮引数1, 仮引数2, ...) {
実行する処理;
...
return 戻り値;
}
そして、関数を呼び出す際に、変数に格納することで、戻り値を使用することができます。
const 変数名 = 関数名(実引数1, 実引数2, ...);
全体を見てみましょう。
function num(x) {
return x * 10; // 戻り値の指定
}
const result = num(5); // 関数の呼び出し
console.log(result); // 50(関数の戻り値)
このコードは、引数で受け取った値を10倍にして返す関数です。
大まかに、以下の処理が行われています。
- 関数に仮引数xを定義
- 関数呼び出し時に実引数5を渡す
- 仮引数xに実引数5が代入される
- 実引数5に10を掛けた値をreturn文で返す
値なしのreturn文
特定の戻り値を返す必要がない場合、値なしのreturn文を使うことができます。
function 関数名(仮引数1, 仮引数2, ...) {
実行する処理;
...
return;
}
戻り値を省略した場合、関数の呼び出し元にはundefinedが返ります。
function empty() {
return;
}
console.log(empty()); // undefined
では、なぜ空のreturn文が使われるのでしょうか。
それは、関数ブロック内でreturn文が実行されると、その時点で関数を終了させるためです。
次のように、関数を途中で終了させたい場合に使用します。
function checkNum(num) {
if (num < 20) {
console.log('処理される')
return; // ここで関数は終了
}
console.log('処理されない'); // return文以降は処理されない
}
checkNum(18);
// "処理される"
上のコードは、引数に18が入るため、条件式num < 20
に対してtrueの評価結果となり、if文内のコンソール出力処理が行われます。
しかし、その後にreturn文を記述することで、直ぐに関数が終了となります。
そのため、return文以降のコンソール出力は処理されないということです。
複数のreturn文
1つの関数の中で複数のreturn文を使うこともできます。
function checkAge(age) {
if (age >= 20) {
return 'あなたは' + age + '歳です。お酒を購入できます';
} else {
return 'あなたは' + age + '歳です。お酒は購入できません'
}
}
let overAge = checkAge(22);
console.log(overAge); // "あなたは22歳です。お酒を購入できます"
let underAge = checkAge(18);
console.log(underAge); // "あなたは18歳です。お酒は購入できません"
上のコードでは、年齢が20歳以上だった場合とそうでない場合で処理を分けています。
このように条件分岐の中で戻り値を使うことができるため、より細かい処理を行うことができます。
まとめ
今回は、関数で使われる戻り値について解説しました。
戻り値は、一言で言えば関数の返事のようなものです。
今までピンときていなかった方でも、戻り値を設定することで関数は値を返すということがイメージできたのではないでしょうか。
使っていくと段々と慣れていくので、関数・引数・戻り値の関係性を今一度復習していきましょう。
合わせて読みたい関数入門シリーズ
第1回:関数と宣言
第2回:関数と引数
第3回:関数と戻り値(当記事)
第4回:関数式
第5回:関数オブジェクト
第6回:argumentsオブジェクト
第7回:アロー関数
第8回:コールバック関数
第9回:関数とメソッド
コメント