[React.js] React 사용을 위한 자바스크립트 응용 - Spread 연산자

2022. 4. 30. 01:41·공부/React.js
반응형

 

React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다.

 

 

spread 연산자

객체를 다루는 또 다른 방법이다.

맛있는 쿠키를 만들어보자.

const cookie = {
  base : "cookie",
  madeIn : "korea"
};

const chocohipCookie = {
  base : "cookie",
  madeIn : "korea",
  toping : "chocochip"
};

const blueberryCookie = {
  base : "cookie",
  madeIn : "korea",
  toping : "blueberry"
};

const strawberryCookie = {
  base : "cookie",
  madeIn : "korea",
  toping : "strawberry"
};

기본적인 쿠키 하나와 토핑에 따라 3가지의 쿠키를 더 만들었다. 그런데 만들다 보니 중복되는 프로퍼티 부분들이 눈에 띈다. 개발자는 참을 수가 없다. 이럴 경우 spread 연산자를 사용하면 중복 없이 쉽게 구현할 수 있다.

 

const cookie = {
  base : "cookie",
  madeIn : "korea"
};

const chocohipCookie = {
  ...cookie,
  toping : "chocochip"
};

const blueberryCookie = {
  ...cookie,
  toping : "blueberry"
};

const strawberryCookie = {
  ...cookie,
  toping : "strawberry"
};

console.log(chocohipCookie);
/*
{base: "cookie", madeIn: "korea", toping: "chocochip"}
	base: "cookie"
	madeIn: "korea"
	toping: "chocochip"
*/

... 이 점 세개의 기호가 spread 연산자를 나타낸다. 기존 객체의 프로퍼티를 다른 객체에 포함시킨다. 

반응형

spread 연산자는 객체 말고 배열에서도 사용할 수 있다.

const noTopingCookies = ['촉촉한 쿠키', '안촉촉한 쿠키'];
const topingCookies = ['바나나 쿠키', '블루베리 쿠키', '딸기 쿠기', '초코칩 쿠키'];

const allCookies = [...noTopingCookies, ...topingCookies];
console.log(allCookies);
/*
["촉촉한 쿠키", "안촉촉한 쿠키", "바나나 쿠키", "블루베리 쿠키", "딸기 쿠기", "초코칩 쿠키"]
0: "촉촉한 쿠키"
1: "안촉촉한 쿠키"
2: "바나나 쿠키"
3: "블루베리 쿠키"
4: "딸기 쿠기"
5: "초코칩 쿠키"
*/

배열의 경우는 전에 배웠던 concat 내장 함수를 사용해도 괜찮지만 concat 함수보다는 spread 연산자가 좀 더 유연하다.

 

const noTopingCookies = ['촉촉한 쿠키', '안촉촉한 쿠키'];
const topingCookies = ['바나나 쿠키', '블루베리 쿠키', '딸기 쿠기', '초코칩 쿠키'];

const allCookies = [...noTopingCookies,"썩은맛 쿠키", ...topingCookies];
console.log(allCookies);
/*
["촉촉한 쿠키", "안촉촉한 쿠키", "썩은맛 쿠키", "바나나 쿠키", "블루베리 쿠키", "딸기 쿠기", "초코칩 쿠키"]
0: "촉촉한 쿠키"
1: "안촉촉한 쿠키"
2: "썩은맛 쿠키"
3: "바나나 쿠키"
4: "블루베리 쿠키"
5: "딸기 쿠기"
6: "초코칩 쿠키"
*/

이렇게 배열 중간에 새로운 요소를 추가할 수도 있다.

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/React.js' 카테고리의 다른 글
  • [React.js] React 사용을 위한 자바스크립트 응용 - Promise
  • [React.js] React 사용을 위한 자바스크립트 응용 - 동기&비동기
  • [React.js] React 사용을 위한 자바스크립트 응용 - 비 구조화 할당
  • [React.js] React 사용을 위한 자바스크립트 응용 - 조건문 업그레이드
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    IT
    인프런
    Java
    토이프로젝트
    개발자
    에러해결
    기출문제
    알고리즘
    QueryDSL
    방통대
    넥사크로
    자바스크립트
    SpringBoot를 이용한 RESTful Web Service 개발
    Spring
    프로그래머스
    프론트엔드
    백준
    SQL
    운영체제
    전자정부프레임워크
    oracle
    토비의스프링부트
    RESTful
    코딩테스트
    react
    MSA
    스프링부트
    JPA
    springboot
    egov
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[React.js] React 사용을 위한 자바스크립트 응용 - Spread 연산자
상단으로

티스토리툴바