[Javascript] spread, rest

앤쨩·2021년 11월 10일
0

Javascript

목록 보기
8/8
post-thumbnail

ES6에서 도입된 spreadrest 에 대해서 알아보겠다.
ES6에서 도입되었기 때문에 IE에서는 사용이 불가하다.


😘 spread

spread는 기존의 것을 건들이지 않고, 새로운 객체를 만든다. 예를 들어서 이런 코드가 있다고 가정해보자.

const anne = {
  name: '앤'
};
const redHair = {
  name: '앤',
  hair: '빨강머리'
};
const greenGables = {
  name: '앤',
  hair: '빨강머리',
  house: '초록지붕'
};
console.log(anne);
console.log(redHair);
console.log(greenGables);


spread 문법을 사용하며 이렇게 적어줄 수 있다.
...은 spread를 사용하겠다는 의미이다.

const anne = {
  name: '앤',
};
const anneRedhair = {
  ...anne,
  hair: '빨강머리'
};
const anneRedhairGreengables = {
  ...anneRedhair,
  house: '초록지붕'
};
console.log(anne);
console.log(anneRedhair);
console.log(anneRedhairGreengables);


spread는 배열에서도 사용이 가능하다.

const fruits = ['🍎', '🥝', '🍌'];
const vegan = [...fruits, '🥦', '🥗'];
console.log(vegan);
// ['🍎', '🥝', '🍌', '🥦', '🥗']

💎 rest

rest는 객체, 배열, 함수의 파라미터에서 사용이 가능하다.

  • 객체에서의 rest

const anneRedhairGreengables = {
  name: '앤',
  hair: '빨강머리',
  house: '초록지붕'
};
const { hair, ...rest } = anneRedhairGreengables;
console.log(hair);
console.log(rest);

추출한 값의 이름이 굳이 rest가 아니여도 괜찮다.

const anneRedhairGreengables = {
  name: '앤',
  hair: '빨강머리',
  house: '초록지붕'
};
const { hair, ...anneGreengables } = anneRedhairGreengables;
console.log(hair);
console.log(anneGreengables);

  • 배열에서의 rest

const fruits = ['🍎', '🍌', '🥝', '🍓', '🍑'];
const [apple, ...rest] = fruits;
console.log(apple);
console.log(rest);


다만, 이렇게는 해줄 수 없다.

const fruits = ['🍎', '🍌', '🥝', '🍓', '🍑'];
const [...rest, peach] = fruits;
console.log(peach);
console.log(rest);

  • 함수 파라미터에서의 rest

    함수의 파라미터로 오는 값들을 배열로 전달받을 수 있다.
    * 이해를 한 다음에 이 부분을 작성할게요 ㅠㅠ
profile
Front-End Developer

0개의 댓글

관련 채용 정보