07. spread 와 rest

07. spread 와 rest

μ΄λ²ˆμ—λŠ” ES6 μ—μ„œ λ„μž…λœ spread 와 rest 문법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. μ„œλ‘œ μ™„μ „νžˆ λ‹€λ₯Έ λ¬Έλ²•μΈλ°μš”, μ€κ·Όνžˆ μ’€ λΉ„μŠ·ν•©λ‹ˆλ‹€.

spread

일단 spread 문법뢀터 μ•Œμ•„λ΄…μ‹œλ‹€. spread λΌλŠ” 단어가 κ°€μ§€κ³  μžˆλŠ” μ˜λ―ΈλŠ” νŽΌμΉ˜λ‹€, νΌλœ¨λ¦¬λ‹€ μž…λ‹ˆλ‹€. 이 문법을 μ‚¬μš©ν•˜λ©΄, 객체 ν˜Ήμ€ 배열을 μ†μ‰½κ²Œ μ»¨νŠΈλ‘€ν• μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄μ„œ λ‹€μŒκ³Ό 같은 객체듀이 μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€.

const slime = {
  name: 'μŠ¬λΌμž„'
};

const cuteSlime = {
  name: 'μŠ¬λΌμž„',
  attribute: 'cute'
};

const purpleCuteSlime = {
  name: 'μŠ¬λΌμž„',
  attribute: 'cute',
  color: 'purple'
};

console.log(slime);
console.log(cuteSlime);
console.log(purpleCuteSlime);

이 μ½”λ“œμ—μ„œλŠ” λ¨Όμ € slime μ΄λΌλŠ” 객체λ₯Ό μ„ μ–Έν–ˆμŠ΅λ‹ˆλ‹€. 그리고 cuteSlime μ΄λΌλŠ” 객체λ₯Ό λ§Œλ“€μ—ˆλŠ”λ°μš”, 기쑴에 μ„ μ–Έν•œ slime 을 건듀이지 μ•Šκ³  μƒˆλ‘œμš΄ 객체λ₯Ό λ§Œλ“€μ–΄μ„œ slime 이 κ°€μ§€κ³  μžˆλŠ” 값을 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€.(즉 λ¨Όμ €μ„ μ–Έν•œ 객체λ₯Ό λ³΅μ‚¬ν•΄μ„œ κ°€μ Έμ˜¨κ²ƒ μž…λ‹ˆλ‹€.)

κ·Έ λ‹€μŒμ—λŠ” purpleCuteSlime μ΄λΌλŠ” 객체λ₯Ό λ§Œλ“€μ—ˆλŠ”λ°μš”, 이 κ°μ²΄λŠ” cuteSlime 이 κ°€μ§€κ³  μžˆλŠ” 속성을 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λ©΄μ„œ μΆ”κ°€μ μœΌλ‘œ color κ°€ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μœ„ μ½”λ“œμ—μ„œμ˜ 핡심은, 기쑴의 것을 건듀이지 μ•Šκ³ , μƒˆλ‘œμš΄ 객체λ₯Ό λ§Œλ“ λ‹€λŠ” 것 μΈλ°μš”, μ΄λŸ¬ν•œ 상황에 μ‚¬μš© ν•  수 μžˆλŠ” μœ μš©ν•œ 문법이 spread μž…λ‹ˆλ‹€.

μ•„κΉŒ μ½”λ“œλŠ” spread 문법을 μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같이 μž‘μ„± ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ„œ μ‚¬μš©ν•œ ... λ¬Έμžκ°€ λ°”λ‘œ spread μ—°μ‚°μžμž…λ‹ˆλ‹€.

spread μ—°μ‚°μž λ°°μ—΄μ—μ„œλ„ μ‚¬μš© ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

기쑴의 animals λŠ” κ±΄λ“œλ¦¬μ§€ μ•ŠμœΌλ©΄μ„œ, μƒˆλ‘œμš΄ anotherAnimals 배열에 animals κ°€ κ°€μ§€κ³  μžˆλŠ” λ‚΄μš©μ„ λͺ¨λ‘ μ§‘μ–΄λ„£κ³ , 'λΉ„λ‘˜κΈ°' λΌλŠ” ν•­λͺ©μ„ μΆ”κ°€μ μœΌλ‘œ λ„£μ—ˆμŠ΅λ‹ˆλ‹€.

λ°°μ—΄μ—μ„œ spread μ—°μ‚°μžλ₯Ό μ—¬λŸ¬λ²ˆ μ‚¬μš© ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

rest

restλŠ” μƒκΉ€μƒˆλŠ” spread λž‘ λΉ„μŠ·ν•œλ°, 역할이 맀우 λ‹€λ¦…λ‹ˆλ‹€. restλŠ” 객체, λ°°μ—΄, 그리고 ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°μ—μ„œ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

κ°μ²΄μ—μ„œμ˜ rest

μš°μ„  κ°μ²΄μ—μ„œμ˜ μ˜ˆμ‹œλ₯Ό μ•Œμ•„λ³ΌκΉŒμš”?

rest μ•ˆμ— color 값을 μ œμ™Έν•œ 값이 λ“€μ–΄μžˆμŠ΅λ‹ˆλ‹€.

rest λŠ” 객체와 λ°°μ—΄μ—μ„œ μ‚¬μš© ν•  λ•ŒλŠ” μ΄λ ‡κ²Œ 비ꡬ쑰화 ν• λ‹Ή 문법과 ν•¨κ»˜ μ‚¬μš©λ©λ‹ˆλ‹€. 주둜 μ‚¬μš© ν• λ•ŒλŠ” μœ„μ™€ 같이 rest λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜λŠ”λ°μš”, μΆ”μΆœν•œ κ°’μ˜ 이름이 κΌ­ rest 일 ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€.

Last updated

Was this helpful?