引数 / 戻り値
Argument / Return Value
概要(サマリー)
引数(ひきすう)とは、関数を呼び出すときに渡す「入力値」のことである。戻り値とは、関数が処理を終えたあとに返す「出力値」のことだ。
料理にたとえると、関数はレシピ、引数は「材料」、戻り値は「できあがった料理」にあたる。材料(引数)を渡して、料理(戻り値)を受け取る、というイメージがわかりやすい。AIにコードを生成してもらう際、「何を渡して何を返すか」を明確に伝えることがとても重要だ。
詳細解説
引数とは何か
引数(ひきすう)は、関数を動かすために外から渡す値のことだ。英語では argument(アーギュメント)または parameter(パラメータ)と呼ぶ。
function greet(name) { // name が「引数」
console.log("こんにちは、" + name + "さん!");
}
greet("田中"); // "田中" を引数として渡す
greet("佐藤"); // "佐藤" を引数として渡す
この例では name という引数に値を渡すことで、同じ関数で異なるメッセージを出力できる。引数があることで、関数を汎用的に使えるようになる。
戻り値とは何か
戻り値(もどりち)は、関数が処理の結果として返す値だ。英語では return value と呼ぶ。JavaScriptでは return 文で値を返す。
function add(a, b) { // a と b が引数
return a + b; // a + b の計算結果が「戻り値」
}
let result = add(3, 5); // 戻り値 8 が result に代入される
console.log(result); // 8
return がない関数は undefined を返す。「計算した結果をどこかで使いたい」なら戻り値が必要、「ただ処理を実行するだけ」なら戻り値なしでも動く。
引数の種類
引数にはいくつかのバリエーションがある。
複数の引数:関数はカンマ区切りで複数の引数を受け取れる。
function multiply(a, b) {
return a * b;
}
console.log(multiply(4, 6)); // 24
デフォルト引数:引数が渡されなかった場合の初期値を設定できる。
function greet(name = "ゲスト") {
return "こんにちは、" + name + "さん!";
}
console.log(greet()); // "こんにちは、ゲストさん!"
console.log(greet("田中")); // "こんにちは、田中さん!"
スコープと引数の関係
引数として渡した変数は、関数の中でのみ使える(スコープ)。外側で同じ名前の変数があっても、関数内の引数は独立している。
let name = "山田"; // 外側の変数
function greet(name) { // この name は引数(外の name とは別物)
console.log("こんにちは、" + name);
}
greet("田中"); // "こんにちは、田中"
console.log(name); // "山田"(外側は変わらない)
AIコーディングとの関係
AIにコードを依頼するとき、「何を引数にして、何を戻り値にするか」を明確に伝えることで、期待通りのコードを得やすくなる。
AIへの効果的な指示の例:
- 「名前(文字列)と年齢(数値)を引数に受け取って、自己紹介文を文字列で返す関数を作ってください」
- 「この関数の戻り値の型がわかりません。TypeScriptで型定義を追加してください」
- 「引数が渡されなかった場合にデフォルト値を使うようにしてください」
逆に「引数なし・戻り値なし」の場合も、その意図を伝えると誤解が少ない。
よくある勘違い
引数(ひきすう)と仮引数・実引数の違いは?
「引数」と一口に言っても、厳密には「仮引数(parameter)」と「実引数(argument)」に分かれる。関数の定義時に書くのが仮引数、実際に呼び出すときに渡す値が実引数だ。ただし日常的な会話では「引数」とまとめて呼ぶことが多いため、厳密に区別しなくても普段の開発に困ることはほとんどない。
return を書かないと何が返る?
return を書き忘れると、JavaScriptでは undefined が戻り値として返る。「関数を呼び出したのに結果が undefined になる」という場合、return が抜けているケースがほとんどだ。戻り値を使いたいときは必ず return が必要と覚えておこう。
引数の数が合わなくてもエラーにならない?
JavaScriptでは引数の数が一致しなくてもエラーにはならない(余分な引数は無視され、足りない引数は undefined になる)。一方、TypeScriptや他の厳格な言語では型や引数の数の不一致がエラーになる。このゆるい仕様のおかげでバグが潜みやすい点は注意が必要だ。
まとめ
- 引数は関数に渡す「入力値」、戻り値は関数から返される「出力値」のことである
- JavaScriptでは
returnを使って戻り値を返す。returnがない場合はundefinedが返る - 引数にはデフォルト値を設定でき、値が渡されなかった場合の挙動を制御できる
- 引数はスコープが関数内に限られており、外の変数とは別物として扱われる
- AIへのコード依頼は「何を引数にして何を返すか」を明確にすると精度が上がる
情報ソース
より詳しくAIに聞いてみよう
- 引数と戻り値の違いを、料理のたとえを使って中学生でもわかるように説明してください。
- 仮引数(parameter)と実引数(argument)の違いを具体的なコードで説明してください。
- JavaScriptでデフォルト引数を使う場面と使い方を教えてください。
- AIに関数の作成を依頼するとき、引数と戻り値をどう伝えれば良いコードが返ってきますか?
- return を書き忘れて undefined になる典型的なバグパターンと、その防ぎ方を教えてください。