職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

JS--argumentsオブジェクト

2024年03月23日 | JavaScript

argumentsオブジェクト

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム

【argumentsオブジェクト】
arguments オブジェクトは関数の中でのみ利用できるオブジェクトです。
関数に渡されてきた値をすべて格納しており、配列の要素のように arguments[0], arguments[1], .... という形で関数に渡されてきた値を取得することができます。なお arguments オブジェクトはアロー関数の中では使用できないのでご注意ください。
 
関数にいくつの値が実際に渡されてきたのかは、 arguments オブジェクトの length プロパティを参照することで確認することができます。
関数で受け取る値の数が決まっていない場合
→arguments オブジェクトを使用することで順番に取り出すことができますが、現在は可変長引数の機能が利用できるようになりましたので arguments オブジェクトを使用しなくても数が決まっていない値を受け取ることができます。

【実際に渡らさた引数の数を取得する(length)】 arguments オブジェクトの length プロパティを参照すると、実際に渡されてきた値を取得することができます。書式は次のようになります。
arguments.length

サンプル

function dispProfile(name, old){
  console.log('arguments.length : ' + arguments.length);
}

dispProfile('Yamada', 24, 'Tokyo');実行 arguments.length : 3

dispProfile('Suzuki');実行 arguments.length : 1

arguments オブジェクトは関数の中でしか使用できないので、 length プロパティも関数内でのみ参照できます。

【呼び出し元から渡さらた値を取得する】

呼び出し元から渡されてきた値は関数の引数に記述した変数に格納されますが、それとは別に arguments オブジェクトにも格納されており、それぞれ arguments[0]、 arguments[1]、 ... という形取得することができます。

サンプル

function dispProfile(){
  console.log('name : ' + arguments[0]);
  console.log('old : ' + arguments[1]);
}

dispProfile('Yamada', 24);実行
 name : Yamada
 old : 24

サンプル2
arguments オブジェクトを使うことで引数の数が決まっていない場合でも順に渡されてきた値を取得して処理することができます。

function dispTotal(){
  let sum = 0;
  for (let i = 0; i 実行 sum = 9

dispTotal(7, 12, 3, 2, 8);実行
sum = 32

【argumentsオブジェクトを使用する場合の注意点】
関数リテラルを使って関数を定義した場合であっても同じように使うことができます。

サンプル--関数リテラルの場合

let dispTotal = function(){
  let sum = 0;
  for (let i = 0; i 実行 sum = 9

ただし、アロー関数式を使って関数を定義した場合には、 arguments オブジェクトを使用することができず arguments is not defined というエラーが発生する


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« JS--Functionコンストラクタ | トップ | 息子介護物語-エピソード65(... »
最新の画像もっと見る

コメントを投稿

JavaScript」カテゴリの最新記事