本記事では、JavaScriptのargumentsオブジェクトの使い方について解説しています。
JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
メリット
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
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");
【JavaScript】アロー関数の書き方と使い方
本記事ではアロー関数の書き方と使い方、通常のfunctionとの違いについて解説しています。 アロー関数について何となく使っているという方やアロー関数を使いたいけど書…
Uncaught ReferenceError: “” is not definedの原因と対処法
本記事では、JavaScriptのエラーの一つUncaught ReferenceError: “” is not definedが出た際の原因と対処法について解説しています。 【エラーの原因と対処法】 “〜” is…