[TIL] 가변인수

7851 단어 TILTIL
function sum(a, b, c) {
  let s = 0;
  for (let i=0; i < arguments.length; i++){
    s += arguments[i];
  }
  return s;
}

const abcSum = sum(10, 20, 30, 40) 

console.log(abcSum) // 100

sum 함수에서 매개변수를 몇 개 받도록 되어있는지와 상관없이 arguments에는 호출 당시의 모든 인자가 다 담긴다.

따라서 sum 함수에 매개변수(a, b, c)는 필요 없게 된다.

// 매개변수 X
function sum() {
  let s = 0;
  for (let i=0; i < arguments.length; i++){
    s += arguments[i];
  }
  return s;
}

const abcSum = sum(10, 20, 30, 40)

하지만 위와 같은 경우에는 함수 시그니처에 인수와 관련된 정보가 부족하다.

function sum(...args) {
  let s = 0;
  for (let i=0; i<args.length; i++){
    s += args[i];
  }
  return s;
}

const abcSum = sum(10, 20, 30, 40)

위의 경우 인자의 개수 상관없이 함수가 실행된다. 또한 함수 시그니처에도 인수와 관련된 정보를 담고 있어 가시성이 좋아졌다.

// a, b는 필수값
function sum(a, b, ...args) {
  let s = 0;
  for (let i=0; i<args.length; i++){
    s += args[i];
  }
  return s;
}

const abcSum = sum(10, 20, 30, 40)

좋은 웹페이지 즐겨찾기