ray88’s diary

お仕事で困ったとき用の自分用の覚書

JavaScript デフォルト引数(引数の規定値)と残余引数(任意の数の引数を渡したいとき)

JavaScript 目次 - ray88’s diary
JavaScriptでは関数に渡す引数の数とそれを受け取る仮引数の数は必ずしも同じでなくて良い
・引数が仮引数の数を上回った場合は引数は使われずに破棄される。
・仮引数の数が引数の数を上回った場合は仮引数はundefinedを持つことになる。
■サンプルコード

function myfunction() {
  logNumbers_(1,2,3);
  logNumbers_(1);
}

function logNumbers_(x,y){
  console.log(`x:${x},y:${y}`);
}


■デフォルト引数:仮引数に引数が与えられなかった場合、undefinedでない既定の値を
        もたせる。
       「=」記号の後に記述した値がデフォルト値となり、対応する引数が
        与えられなかったときに、仮引数はその値を持つようになる。
 ・構文

function 関数名(・・・,仮引数 = 値,・・・){
    //処理
}

■サンプルコード

function myfunction() {
  logMessage_('Bob','Good Morning');
  logMessage_('Tom');
}

function logMessage_(name,msg = 'Hello'){
  console.log(`${msg},${name}.`);
}


■残余引数:関数に任意の数の引数を渡したいとき、残余引数を使用すると
      受け取った引数のうち、余った引数を用意した配列の要素として受け取る。
      以下構文のように仮引数の前にドット記号を3つ「...」記述する
      残余引数は不特定多数の引数を渡して、それに対するループ処理を返すなどの
      処理を行う関数を作りたいときに有効です。

■構文

function 関数名(・・・, ...仮引数){
  //処理
}

■サンプルコード

function myfunction() {
  logMembers_('Bob','Tom',`Ivy`,'Jay');
}
function logMembers_(first,second,...members){
  console.log(`${first},${second}.`);
  console.log(`${members}`);
}