전개 연산자

honeyricecake·2022년 8월 3일
0

자바스크립트

목록 보기
13/20

파이썬의 *과 같다. iterable한 객체를 언패킹해주는 *처럼 전개연산자 ...은 배열을 언패킹해준다.

ex.

const language = ['C', 'Java', 'Python', 'JavaSpring', 'Carbon']

function toObject (x, y, ...z) {
  return {
    first: x,
    second: y,
    rest: z
  }
}

console.log(toObject(...language))

이 때, ...z를 나머지를 받아준다하여 rest parameter라고 부른다.

저렇게 하면 ...z는 z를 언패킹한다는 것이므로 z에는 배열이 들어가야 하고 따라서 이미 할당된 항목을 제외한 나머지 항목들이 모두 z에 들어가 배열이 된다.

그리고 위의 코드가 만약

const language = ['C', 'Java', 'Python', 'JavaSpring', 'Carbon']

function toObject (first, second, ...rest) {
  return {
    first: first,
    second: second,
    rest: rest
  }
}

console.log(toObject(...language))

이렇다면
자바스크립트에서 속성의 이름과 데이터의 이름이 같으면 축약이 가능하므로
아래와 같이 나타낼 수 있다.

const language = ['C', 'Java', 'Python', 'JavaSpring', 'Carbon']

function toObject (first, second, ...rest) {
  return {
    first,
    second,
    rest
  }
}

console.log(toObject(...language))

그리고 위 코드는 아래와 같이 조금 더 축약할 수 있다.

const language = ['C', 'Java', 'Python', 'JavaSpring', 'Carbon']

const toObject = (first, second, ...rest) => ({first, second, rest})

console.log(toObject(...language))

0개의 댓글