JavaScriptのfunctionの引数にデフォルト値を設定する - 桜ヶ丘日記
JavaScriptの引数ってどうなっているんだろうと思ってちょっと調べてみた。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Hoge</title> </head> <body> </body> </html> <script type="text/javascript"> var msg = function() { // argumentsは引数の値が格納された配列 // arguments.lengthはその配列の要素数(つまり引数の数) // 三項演算子を利用してtxtとshobonの2つの変数に値を入れる var txt = (arguments.length > 0) ? arguments[0] : ''; var shobon = (arguments.length > 1) ? arguments[1] : true; if (txt === '') { alert('なんか言ってくれよ'); } else { if(shobon) { alert(txt + '君の手が温かい'); }else{ alert(txt + 'はい'); } } } /* 呼び出してみるテスト */ msg(); msg('しょぼん'); msg('しゃきーん', false); msg(1, 1, 1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1); </script>
argumentsという配列に引数は格納されているみたいだ。
省略された引数は、存在しない要素にアクセスしているようなものなので、
undefinedと表示される。
つまり、PHPみたく勝手に引数を省略したからといってエラーが起きてストップすることはない
ちなみに、省略された引数の場合は、
if(typeof arg2 == 'undefined')
みたいな感じで再利用するといいかと。
オプション引数(省略できる引数) - prog*sig