본문 바로가기
FrontEnd/React.js

전개 연산자 사용하기

by J._.cobb 2022. 6. 26.

전개 연산자

전개 연산자는 배열이나 객체 변수를 좀 더 직관적이고 편리하게 합치거나 추출할 수 있게 도와주는 문법이다. 변수 앞에 …(마침표 3개)를 입력해서 사용한다.

 

배열 합치기

ES5

  • 기존 ES5에서 배열 2개를 합치기 위해선느 배열 각각에 인덱스로 접근해 값을 가져오거나 concat 함수를 이용한다.
  • varArray1, varArray2 배열에 각각 인덱스 (0,1)로 접근해 인자 값(num1, num2, num3, num4)을 가져와 새로운 배열 sumVarArr에 하나씩 넣는다.

ES6

  • ES6에서는 전개연산자 …(마침표 3개)을 배열 앞에 붙여 여러 개의 배열을 합칠 수 있다.
  • sumLetArr 배열의 값을 추출해 개별 변수에 넣는다. 순서대로 변수 sum1에 sumLetArr[0] 값, sum2에 sumArrLet[1] 값을 대입한다. 나머지 배열 값을 마지막에 전개 연산자 처리된 …remain 변수에 넣는다.

객체 합치기

ES5

  • 기존 ES5에서 객체 2개를 합치기 위해서는 Object.assign() 함수를 이용해야 한다. 첫 번째 인자 {}는 함수의 return 값이고 뒤의 인자에 객체들을, (콤마)로 연결해 나열하면 여러 개의 객체를 합칠 수 있다.

ES6

  • ES6에서는 …(마침표 3개)을 객체명 앞에 붙여 여러 개의 객체를 합칠 수 있다.
  • sumLetObj 객체의 키와 값을 추출해 키와 동일한 명칭의 개별 변수에 넣는다. 나머지는 마지막에 전개 연산자 처리된 …others 변수에 넣는다.

 

예제코드

App.js

import React from 'react';
import './App.css';
import SpradOperator from './R011_SpreadOperator';

function App() {
  return (
    <div>
      <h1>Start React 200!</h1>
      <p>css 적용하기</p>
      <SpradOperator/>
    </div>
  );
}

export default App;

R011_SpreadOperator.js

import React, {Component} from "react";

class R011_SpreadOperator extends Component {

  constructor(props){
    super(props);
    this.state = {};
  }

  componentDidMount() {
    //javascript Array
    var varArray1 = ['num1', 'num2'];
    var varArray2 = ['num3,', 'num4'];
    var sumVarArr = [varArray1[0], varArray1[1], varArray2[0], varArray2[1]];
    // var sumVarArr = [].concat(varArray1, varArray2);
    console.log('1.sumVarArr : '+sumVarArr);
    //ES6 Array
    let sumLetArr = [...varArray1, ...varArray2];
    console.log('2. sumLetArr : '+sumLetArr);
    const [sum1, sum2, ...remain] = sumLetArr;
    console.log('3. sum1 : '+sum1+', sum2 : '+sum2+', remain : '+remain);

    var varObj1 = {key1 : 'var1', key2 : 'val2'};
    var varObj2 = {key2 : 'new2', key3 : 'val3'};
    //javascript object
    var sumVarObj = Object.assign({}, varObj1, varObj2);
    console.log('4. sumVarObj : '+JSON.stringify(sumVarObj));
    //ES6 Object
    var sumLetObj = {...varObj1, ...varObj2};
    console.log('5. sumLetObj : '+JSON.stringify(sumLetObj));
    var {key1, key3, ...others} = sumLetObj;
    console.log('6. key1 : '+key1+', key3 : '+key3+', others : '+JSON.stringify(others));
  }

  render(){
    return(
      <h2>[THIS IS SpreadOperator]</h2>
    )
  }
}

export default R011_SpreadOperator;

결과 화면

'FrontEnd > React.js' 카테고리의 다른 글

화살표 함수 사용하기  (0) 2022.06.26
class 사용하기  (0) 2022.06.26
React의 생명주기-변경  (0) 2022.06.23
React의 생명주기-생성  (0) 2022.06.23
React의 기본 구조  (0) 2022.06.23