概要
これまでの関数のサンプルコードでは、関数定義の際に、関数の引数の型は指定していませんでした。
また、関数の呼び出しの再にも型については、厳密にチェックをして呼び出していません。
javascriptは型の扱いが動的で、他の言語に比べると型の扱いに注意してプログラムする必要があります。
また、引数の型に対しての注意と、引数の数についても、javascriptは厳密にチェックしていません。
これから実際のコードを書いて、引数の細かい使い方についてまとめていこうと思います。
省略可能な引数
javascriptの関数の引数を省略した場合の挙動をみてみます。
下記のようなコードを書いて実行してみます。
function test2(a, b) { console.log(a); if (a == undefined) { console.log("a1"); } else { console.log("a2"); } if (b == undefined) { console.log("b1"); } else { console.log("b2"); } return true; } test2(); test2(10); test2(10, 20);
出力結果
関数test2を引数の省略、明示した場合に分けて、3回呼んでいます。
出力結果はわかりやすいように、関数ごとに空行を入れています。
undefined a1 b1 10 a2 b1 10 a2 b2
出力結果は上記のようになります。
最初のtest2()の関数では、引数のaもbもundefinedとして解釈されます。
javascriptの関数は、引数を省略してもエラーにはならずに実行されます。
2つめと3つめの関数はそれぞれ、引数を記述していますが、第一引数や第二引数をそれぞれ省略しても、省略した引数はundefinedとして解釈されます。