Rest 문법 (나머지 매개변수)

posinity·2023년 6월 12일
0

JavaScript

목록 보기
29/31

나머지 매개변수 구문을 사용하면 함수가 정해지지 않은 수의 매개변수를 배열로 받을 수 있다.

함수의 마지막 매개변수 앞...를 붙이면 모든 후속 매개변수를 배열에 넣는다.
마지막 매개변수만 나머지 매개변수로 설정할 수 있다.

function myFun(a, b, ...manyMoreArgs) {
  console.log("a", a);
  console.log("b", b);
  console.log("manyMoreArgs", manyMoreArgs);
}

myFun("one", "two", "three", "four", "five", "six");

// 콘솔 출력:
// a, one
// b, two
// manyMoreArgs, [three, four, five, six]

함수 정의에는 하나의 ...만 존재할 수 있다

foo(...one, ...wrong, ...wrong)

나머지 매개변수는 변수가 하나여도 배열이다.

function myFun(a, b, ...manyMoreArgs) {
  console.log("a", a)
  console.log("b", b)
  console.log("manyMoreArgs", manyMoreArgs)
}

myFun("one", "two", "three")

// a, "one"
// b, "two"
// manyMoreArgs, ["three"] <-- 요소가 하나지만 여전히 배열임

나머지 매개변수에 변수가 없다면 빈배열이 된다

// 위에 정의한 함수를 그대로 사용

myFun("one", "two")

// a, "one"
// b, "two"
// manyMoreArgs, [] <-- 여전히 배열

배열에서의 rest

// Rest 사용 예) 배열의 경우 1
const a = [1, 2, 3];
const [ one, ...rest ] = a;
console.log(one); // 1
console.log(rest); // [2, 3]

함수의 매개변수가 몇 개가 될지 모르는 상황에서 rest 매개변수를 사용하면 유용하다.

// Rest 사용 예) 함수 파라미터 1
function sum(...rest) {
  return rest;
}
const result = sum(1,2,3);
console.log(result); // [1, 2, 3]

출처

mdn 나머지 매개변수
[JavaScript] Spread / Reat 문법 (feat. 구조 분해 할당)

profile
문제를 해결하고 가치를 제공합니다

0개의 댓글