lengthプロパティ

広告

Argumentsクラスのlengthプロパティは関数へ渡された引数の数を取得するのに使用します。

関数に渡された引数の数を返します。

lengthプロパティを参照することで関数へ渡されてきた引数の数を取得できます。この数は関数側で記述された引数の数ではなく、関数を呼び出した時に実際に記述された引数の数である点に注意して下さい。

次のような関数を例に確認してみます。

function lengthcheck(num1, num2){
  return arguments.length;
}

この関数は、渡されてきた引数の数が設定されているarguments.lengthの値を返します。では関数lengthcheckを引数の数を変えて呼び出してみます。

function test(num1, num2){
  return arguments.length;
}

alert(test(10, 20));      // 2
alert(test(10, 20, 8));   // 3
alert(test(10));          // 1

関数側に渡されてきた引数の数にarguments.lengthは設定されています。これは関数の定義側で記述された引数の数ではない点に注意して下さい。

arguments.lengthを参照することで、必要なだけの引数が渡されてきているかどうか確認することができます。

サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script1_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

function lengthcheck(num1, num2){
  return arguments.length;
}

document.write("<p>");

print("length = " + lengthcheck(10, 20));
print("length = " + lengthcheck(10, 20, 8));
print("length = " + lengthcheck(10));

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p1-1

( Written by Tatsuo Ikura )