[JS]Destructuring Assignment & Rest parameter(구조분해할당 & 나머지 매개변수)

badassong·2022년 11월 13일
0

JS

목록 보기
14/31
post-thumbnail

구조 분해 할당

구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식이다. (* mdn docs)

배열 혹은 객체에서 각각 값(value)이나 프로퍼티(property)
를 분해하여 별도의 변수에 담을 수 있게 해주는 것이다!

var a, b, rest;
[a, b] = [10, 20];
console.log(a); // 10
console.log(b); // 20

할당받을 변수를 왼쪽에, 분해할 대상은 오른쪽에 대입한다.
그래서 배열 [10, 20]이 분해되어 각각 a, b에 담긴 것이다.

[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(a); // 10
console.log(b); // 20
console.log(rest); // [30, 40, 50]

여기서 10, 20이 각각 a, b에 할당되고 나머지 요소가 ...rest 로 받아서 rest변수에 배열로 저장된 것이다!

Rest parameter

Rest 파라미터(나머지 매개변수)는 매개변수 이름 앞에 세개의 점 ...을 붙여서 정의한 매개변수를 의미한다. Rest파라미터는 함수에 전달된 인수들의 목록을 배열로 전달받는다.

function bar(param1, param2, ...rest) {
  console.log(param1);  // 1
  console.log(param2);  // 2
  console.log(rest);  // [3, 4, 5]
}

bar(1, 2, 3, 4, 5)

Rest파라미터는 이름 그대로 먼저 선언된 매개변수에 할당된 인수를 제외한 나머지 인수들로 구성된 배열이 할당된다. 따라서 Rest파라미터는 반드시 마지막 파라미터여야 한다!!

  • Rest 파라미터는 마지막 파라미터여야 한다
  • Rest파라미터는 단 하나만 선언할 수 있다.
  • Rest 파라미터는 함수 정의 시 선언한 매개변수 개수를 나타내는 함수 객체의 length 프로퍼티에 영향을 주지 않는다.
profile
프론트엔드 대장이 되어보쟈

0개의 댓글