Spread 연산자

  • Syntax[...iterable]

    • 이터러블 오브젝트를 하나씩 전개

    • [...iterable]

    • [...] 처럼 [] 안에 점(.) 3개 작성

    • 이어서 이터러블 오브작트 작성

    • []안에 spread 대상 배열 작성

  • Array spread 작성 형태

let two = [21,22];

let five = [51,52];

let one = [11,...two,12,...five];

...에 연결하여 array 작성

console.log(one); // 11, 21, 22, 12, 51, 52


String spread

  • []안에 spread 대상 문자열 작성

  • 작성한 문자의 문자단위로 배열로 분리

    • let str = “music”;

    • let chars = [...str];

오브젝트 함수

  • 오브젝트 함수의 파라미터에 spread 사용

    • let two = [21,22]; let five = [51,52]; two.push(...five);

  • two 와 five에 배열

object spread

  • const val = {name:123}

  • function spread - 호출하는 함수의 파라미터에 spead 작성

function get(a,b,c)(){};

const val = [10,20,30];

get(...val);

  • get() 파라미터에 spread 사용
  • values를 get(10,20,30) 형태로 전개

rest 파라미터

  • function(param,paramN,...rest)

  • 호출받는 function() 파라미터에 ...과 같이 점3개 작성

  • ...에 이어서 파라미터 이름 작성

  • 하나 이상의 파라미터를 배열로 묶음

get(...rest){}

get(...[1,2,3]);

get(one...rest){}

get(...[1,2,3]); // one=1 , [2,3]


Array-like

Object이지만 이터러블 오브젝트

  • let one = {0:value, 1: value, length:2};

  • 프로퍼티 key 값이 0부터 순서값

  • 전체 프로퍼티 수를 length에 작성

Object이지만 for() 문으로 전개가능

  • 프로퍼티 키 값(0,1)을 인덱스로 사용

argument는 배열이 아님 Array-like로 저장됨

  • function get(){}

  • get(1,2,3);


rest, arguments 차이

  • argument 오브젝트

  • 파라미터에 관계없이 전체 설정

  • Array-like 이므로 배열 메서드 사용 불가


  • rest 파라미터

  • 나머지 파라미터 설정

  • Array 오브젝트이므로 배열메서드 사용

results matching ""

    No results matching ""