【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【JavaScript】argumentsオブジェクトの使い方

本記事では、JavaScriptのargumentsオブジェクトの使い方について解説しています。

JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
総合評価
( 5 )
メリット
  • 誰でも分かるように嚙み砕いて説明してくれる
  • アニメーションの知識が深く学べる
  • 1つのWebサイトを作りながら学べる
楽天ブックス
¥2,794 (2024/05/19 02:42時点 | 楽天市場調べ)
\楽天ポイント5倍セール!/
楽天市場で探す
\ポイント5%還元!/
Yahoo!ショッピングで探す
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場で探す
\ポイント5%還元!/
Yahoo!ショッピングで探す
目次

argumentsオブジェクトとは?

argumentsオブジェクトとは、関数内でしか使うことができない特殊なオブジェクトです。

function sample() {
  console.log(arguments); // -> OK
}

console.log(arguments); // -> Uncaught ReferenceError: arguments is not defined

関数で引数を使う場合、基本は引数の数と関数呼び出し時に渡す値の数は同じにするのがベストです。その理由は引数の数が少ないと、関数呼び出しで渡した値がどの引数にも渡されず無いものとされ、引数の数が多いとundefinedが代入されてしまいます。

このような関数呼び出し時に渡す値が決まっていない時にargumentsオブジェクトを使うと、渡された値を全て取得でき、undefinedのいらない情報を除外することができます。

argumentsオブジェクトの使い方

argumentsオブジェクトで渡された値の数を取得する

argumentsオブジェクトを使って渡された値の数を取得するには、lengthプロパティを使います。

arguments.length

実際にarguments.lengthで渡された値の数を取得してみましょう。

function sample() {
  console.log(arguments.length);
}

sample(); // -> 0
sample(1); // -> 1
sample(true, false); // -> 2
sample("A", "B", "C"); // -> 3

argumentsオブジェクトで渡された値を取得する

argumentsオブジェクトで渡された値は配列として一つずつ格納されます。値を取り出すには通常の配列と同様に[インデックス番号]で取り出します。

function sample() {
  for (let i = 0; i < arguments.length; i++) {
    console.log(`arguments[${i}]の値:${arguments[i]}`);
  }
}

sample("A"); // -> arguments[0]の値:A
sample("B", "C"); // -> arguments[0]の値:A arguments[1]の値:C
sample("D", "E", "F"); // -> arguments[0]の値:D arguments[1]の値:E arguments[2]の値:F

argumentsオブジェクトはアロー関数で使うことができない

argumentsオブジェクトは便利なオブジェクトですが、アロー関数で使うことができません。

アロー関数でargumentsオブジェクトを使うとエラー「Uncaught ReferenceError: arguments is not defined」が表示されます。

const sample = () => {
  console.log(arguments); // -> Uncaught ReferenceError: arguments is not defined
};

sample("A");

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次