λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
NestJS/javascript

[javascript] μŠ€ν”„λ ˆλ“œ μ—°μ‚°μž(...) κ°œλ…κ³Ό μ‚¬μš©λ²•

by dani0312 2025. 1. 17.

πŸ“ŒμŠ€ν”„λ ˆλ“œ μ—°μ‚°μž

β—Ύ μŠ€ν”„λ ˆλ“œ μ—°μ‚°μžλž€?

 μŠ€ν”„λ ˆλ“œ μ—°μ‚°μžλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ ES6 버전뢀터 λ„μž…λœ κΈ°λŠ₯으둜, λ°°μ—΄μ΄λ‚˜ 객체의 μš”μ†Œλ₯Ό κ°œλ³„μ μœΌλ‘œ νŽΌμΉ˜κ±°λ‚˜, μƒˆλ‘œμš΄ λ°°μ—΄μ΄λ‚˜ 객체λ₯Ό μƒμ„±ν•˜λŠ” 데 μ‚¬μš©λœλ‹€. 

 

μžλ°”μŠ€ν¬λ¦½νŠΈ 객체 쀑 반볡이 κ°€λŠ₯ν•œ Array, Map, Set, String λ“±μ˜ μ›μ†Œλ₯Ό λ‚˜μ—΄ν•  수 μžˆλŠ” κΈ°λŠ₯이닀. 

 

 

πŸ€”μ²˜μŒμ— 이 κΈ°λŠ₯을 μ•Œμ•„λ³΄κ²Œ 된 것은 'λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ κ°„λ‹¨ν•˜κ²Œ λ°°μ—΄μ˜ μš”μ†Œλ₯Ό 값에 넣을 수 μ—†μ„κΉŒ?' μ˜€λŠ”λ° 이 μ˜λ¬Έμ μ— κΌ­ λ§žλŠ” μœ μš©ν•œ κΈ°λŠ₯이 λ°”λ‘œ 이 'μŠ€ν”„λ ˆλ“œ μ—°μ‚°μž' μ˜€λ‹€. 

 

β—Ύ μŠ€ν”„λ ˆλ“œ μ—°μ‚°μž μ‚¬μš©λ²•

1. λ°°μ—΄μ—μ„œ μš”μ†Œ 펼치기

λ°°μ—΄μ˜ μš”μ†Œλ₯Ό 펼칠 λ•Œ μ‚¬μš©ν•œλ‹€.

const arr1 = [1,2,3];
const arr2 = [4,5,6];
const combined = [...arr1,...arr2];

 

κ²°κ³Ό

console.log(combined); // [1, 2, 3, 4, 5, 6]

 

 

2. λ°°μ—΄ 볡사

배열을 볡사할 λ•Œλ„ μœ μš©ν•˜λ‹€. 기쑴의 배열은 λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€. 

const original = [1,2,3];
const copy = [...original];

 

 

κ²°κ³Ό

console.log(copy); // [1,2,3]
console.log(copy === original); // false (μƒˆλ‘œμš΄ λ°°μ—΄)

 

 

3. 객체 볡사

const obj = { a: 1, b: 2 };
const copy = { ...obj };

 

κ²°κ³Ό

console.log(copy); // { a:1, b:2 }
console.log(copy === obj); //false (μƒˆλ‘œμš΄ 객체)

4. 객체 병합

const obj1 = { num:1, num2:2 };
const obj2 = { age:3, age2:4 };
const combined = { ...obj1, ...obj2 };

 

κ²°κ³Ό

console.log(combined); // { num: 1, num2: 2, age: 3, age2: 4 }

 

 


μŠ€ν”„λ ˆλ“œ μ—°μ‚°μžλ₯Ό 톡해 반볡문과 같은 것을 μ‚¬μš©ν•˜μ—¬ μš”μ†Œλ₯Ό ν•˜λ‚˜μ”© μ ‘κ·Όν•˜μ—¬ 꺼내지 μ•Šμ•„λ„ 맀우 μ‰½κ²Œ μš”μ†Œλ“€μ„ 펼쳐 λ‹€λ₯Έ 값에 ν• λ‹Ήν•˜κ±°λ‚˜ ν•©μΉ  수 μžˆλ‹€ 😊


/* λ‚΄κ°€ μΆ”κ°€ν•œ μ½”λ“œ */ /* λ‚΄κ°€ μΆ”κ°€ν•œ μ½”λ“œ 끝끝 */