JavaScript | デフォルト引数

JavaScript JavaScript
スポンサーリンク

JavaScript の デフォルト引数を、プログラミング初心者向けにやさしく、例題付きで解説します。


1. デフォルト引数とは?

関数を呼び出すときに、引数を渡さなかった場合に自動で使われる値のことです。

通常の関数ではこう書きます:

function greet(name) {
  console.log("こんにちは、" + name + "さん!");
}

greet("太郎"); // こんにちは、太郎さん!
greet();       // こんにちは、undefinedさん!
JavaScript
  • 2回目の呼び出しでは引数 name を渡していないので、undefined になります。
  • でも、「名前が未指定のときは“ゲスト”にしたい」と思ったら…?

ここで デフォルト引数 を使います。


2. デフォルト引数の書き方

function greet(name = "ゲスト") {
  console.log("こんにちは、" + name + "さん!");
}

greet("太郎"); // こんにちは、太郎さん!
greet();       // こんにちは、ゲストさん!
JavaScript
  • name = "ゲスト" と書くことで、引数が渡されなかったときに "ゲスト" が自動で代入されます。

3. 複数の引数にも使える

function introduce(name = "名無し", age = 20) {
  console.log(name + "さんは、" + age + "歳です。");
}

introduce("花子", 25); // 花子さんは、25歳です。
introduce("太郎");     // 太郎さんは、20歳です。
introduce();           // 名無しのさんは、20歳です。
JavaScript
  • 引数ごとにデフォルト値を設定可能
  • 左から順番に渡すのが基本
  • 後ろの引数もデフォルト値にできる

4. デフォルト引数に関数を使う

デフォルト値には 定数だけでなく式や関数の結果 も使えます。

function getRandomNumber() {
  return Math.floor(Math.random() * 100);
}

function showNumber(num = getRandomNumber()) {
  console.log("数字は " + num);
}

showNumber(10); // 数字は 10
showNumber();   // 数字は 37 (ランダム)
JavaScript
  • 引数が未指定の場合に、関数 getRandomNumber() の結果が自動で使われます。

5. デフォルト引数の注意点

  1. undefined だけがデフォルト値になる
function sayHi(name = "ゲスト") {
  console.log("こんにちは、" + name + "さん!");
}

sayHi(undefined); // こんにちは、ゲストさん!
sayHi(null);      // こんにちは、nullさん!
JavaScript
  • null を渡すとデフォルト値は使われません。
  • デフォルト値が使われるのは 引数が未指定 or undefined の場合のみ
  1. 順番に注意
function test(a = 1, b) {
  console.log(a, b);
}

test();      // 1 undefined
test(undefined, 5); // 1 5
test(10);    // 10 undefined
JavaScript
  • 前の引数にデフォルト値があっても、後ろの引数は指定しなければ undefined です。

6. 例題:便利なデフォルト引数

例題1:挨拶関数

function greetUser(name = "ゲスト", greeting = "こんにちは") {
  console.log(greeting + "、" + name + "さん!");
}

greetUser();                // こんにちは、ゲストさん!
greetUser("太郎");          // こんにちは、太郎さん!
greetUser("花子", "やあ");  // やあ、花子さん!
JavaScript

例題2:配列の合計関数

function sum(numbers = [1,2,3]) {
  return numbers.reduce((a,b) => a+b, 0);
}

console.log(sum());         // 6 (デフォルトの [1,2,3])
console.log(sum([10,20])); // 30
JavaScript

💡 まとめ

  • デフォルト引数は「引数が未指定でも安全に動かせる」ために便利
  • 式や関数も使える
  • undefined の場合だけ有効
  • 複数引数の順番や指定の仕方に注意
タイトルとURLをコピーしました