JavaScript | 関数関連の便利な仕組み・プロパティ

JavaScript JavaScript
スポンサーリンク

関数まわりの「ちょっと特殊な性質」を整理しておくと、JavaScript の理解がグッと深まります。初心者向けに、代表的なものをわかりやすくまとめますね。


関数関連の便利な仕組み・プロパティ

1. arguments オブジェクト

  • 何か?
    関数の中で自動的に使える「配列っぽいオブジェクト」。呼び出し時に渡された引数が全部入っている。
  • 特徴
    • 配列に似ているけど完全な配列ではない(mapfilter は使えない)。
    • arguments.length で「実際に渡された引数の数」がわかる。
function showArgs() {
  console.log(arguments[0]); // 最初の引数
  console.log(arguments.length); // 渡された数
}

showArgs("A", "B", "C");
// => "A"
// => 3
JavaScript

2. caller プロパティ

  • 何か?
    関数が「どの関数から呼ばれたか」を参照できるプロパティ。
  • 注意点
    • セキュリティや最適化の理由で、最近の JavaScript ではあまり推奨されない。
    • 使わなくても困らないことが多い。
function foo() {
  console.log(foo.caller); // 呼び出し元の関数を表示
}

function bar() {
  foo();
}

bar(); // => bar 関数の定義が表示される
JavaScript

3. デフォルト引数

  • 何か?
    引数が渡されなかったときに「初期値」を設定できる仕組み。
  • メリット
    • undefined チェックを自分で書かなくてよい。
function greet(name = "ゲスト") {
  console.log("こんにちは、" + name + "さん!");
}

greet("太郎"); // => こんにちは、太郎さん!
greet();       // => こんにちは、ゲストさん!
JavaScript

4. 可変長引数(rest パラメータ)

  • 何か?
    ... を使って「残りの引数を全部まとめて配列にする」仕組み。
  • メリット
    • 引数の数が決まっていない関数を簡単に書ける。
function sum(...numbers) {
  return numbers.reduce((total, n) => total + n, 0);
}

console.log(sum(1, 2, 3));    // 6
console.log(sum(10, 20, 30)); // 60
JavaScript

まとめ

  • arguments → 実際に渡された引数を全部見る(配列風)。
  • caller → 呼び出し元の関数を参照(ただし非推奨)。
  • デフォルト引数 → 引数が省略されたときの初期値を設定。
  • 可変長引数(rest)... で残りの引数を配列として受け取る。

初心者の方はまず デフォルト引数rest パラメータ を積極的に使うのがおすすめです。arguments は古いコードでよく出てくるので「読み解くために知っておく」、caller は「存在だけ知っておく」で十分。

タイトルとURLをコピーしました