JavaScriptの関数の中でreturnを使うタイミングとコツ
生徒
「先生、JavaScriptの関数でreturnっていつ使えばいいんですか?どんなタイミングがあるんでしょう?」
先生
「returnは関数が結果を外に渡すときに使います。関数の中で計算や処理をして、その結果を返したいときに使うんです。」
生徒
「でも、returnを途中で使うと、どうなるんですか?全部のコードを実行しなくていいとか?」
先生
「そうです。returnを使うと、そこですぐに関数が終わって結果を返します。だから必要なときに使い分けるのがコツですよ。」
1. returnとは?関数が結果を返すための命令
JavaScriptの関数は何か処理をして結果を返すことができます。その結果を返すために使うのがreturnです。
returnを書いたら、その関数の処理はそこで終わり、returnの後ろの値が呼び出し元に返されます。
function add(a, b) {
return a + b; // ここで計算結果を返す
}
console.log(add(3, 5)); // 8 と表示される
この例では、add関数が足し算の結果を返しています。
2. returnを使うタイミング①: 計算結果や処理結果を返したいとき
関数は「計算機」のように使うことが多いです。何かを計算したり処理した結果を呼び出し元に返したいときにreturnを書きます。
function multiply(x, y) {
return x * y; // 掛け算の結果を返す
}
console.log(multiply(4, 6)); // 24
このように結果を返して、別の場所でその値を使えるようにします。
3. returnを使うタイミング②: 条件により処理を途中で終わらせたいとき
場合によっては、関数の途中で処理を終わらせたいことがあります。そんなときもreturnを使います。
例えば、引数が不正な値だったらすぐに終わらせたい場合です。
function divide(a, b) {
if (b === 0) {
return "エラー:0で割れません"; // ここで終わり
}
return a / b; // そうでなければ割り算の結果を返す
}
console.log(divide(10, 2)); // 5
console.log(divide(10, 0)); // エラー:0で割れません
この例では、0で割ろうとしたらすぐに関数を終了し、エラーメッセージを返しています。
4. returnを途中で使うコツ: 不要な処理を避けて効率化しよう
関数が長くなると、全部の処理を最後まで実行するのが無駄な場合もあります。そんなときに早めにreturnして終わらせると処理が速くなります。
例えば、値のチェックを先にして、問題があればすぐに返す書き方です。
function greet(name) {
if (!name) { // nameが空やundefinedの場合
return "名前がありません";
}
return "こんにちは、" + name + "さん!";
}
console.log(greet("太郎")); // こんにちは、太郎さん!
console.log(greet("")); // 名前がありません
こうすると無駄な文字列の連結などをしなくて済みます。
5. returnを使わない場合はundefinedが返る
もし関数の中でreturnを書かなかったら、関数を呼んだ結果は特別な値undefinedになります。
undefinedは「値がない」「未定義」という意味で、何も返していないことを示します。
function sayHello() {
console.log("こんにちは");
}
const result = sayHello();
console.log(result); // undefined と表示される
この場合、関数は文字を表示していますが、呼び出し元には何も返していません。
6. returnを使うときの注意点
- 関数内で複数回returnを書いても、最初に実行されたreturnで関数は終わる。
なのでreturnの後のコードは実行されません。 - returnの戻り値は関数の呼び出し元で受け取ることができる。
何も受け取らなければ捨てられます。 - returnの値は1つだけ返せるが、配列やオブジェクトにまとめれば複数の値も返せる。
7. まとめ
JavaScriptの関数でreturnは結果を返す命令であり、計算結果や条件によって処理を途中で終わらせたいときに使います。
処理を効率よくするために、条件チェックで早めにreturnを書くことが大切です。
returnを使わない場合はundefinedが返るので、返すべき値があるなら忘れずに書きましょう。