JavaScript - spread syntax

spread syntax

๋ฐฐ์—ด์ด๋‚˜ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์ด ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž๋ฅผ 0๊ฐœ ์ด์ƒ์˜ ์ธ์ˆ˜ (ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ) ๋˜๋Š” ์š”์†Œ (๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด์˜ ๊ฒฝ์šฐ)๋กœ ํ™•์žฅํ•˜์—ฌ, 0๊ฐœ ์ด์ƒ์˜ ํ‚ค-๊ฐ’์˜ ์Œ์œผ๋กœ ๊ฐ์ฒด๋กœ ํ™•์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ โ€˜โ€ฆโ€˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

1. Copy(๋ณต์‚ฌ)

๊ธฐ์กด์— ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ๋ณต์‚ฌ๋Š” ํ•  ๋•Œ๋Š” ๋ฐฐ์—ด์˜ map ๋˜๋Š” foreach๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋‚˜, spread syntax๋ฅผ ์ด์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

// array copy
const arr = [1, 2, 3, 4, 5];
const arraycopy = [...arr]; //[1, 2, 3, 4, 5]

๐Ÿ‘‰๐Ÿป โ€ฆ์€ array์— ๋“ค์–ด์žˆ๋Š” ์•„์ดํ…œ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ์„ ๊ฐ๊ฐ ๋‚ฑ๊ฐœ๋กœ ๊ฐ€์ ธ์™€์„œ ๋ณต์‚ฌํ•ด์˜ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

// obj copy
const obj = { key1: "๐Ÿ", key2: "๐ŸŽ" };
const objcopy = { ...obj }; // {key1 : '๐Ÿ', key2 : '๐ŸŽ'}

๐Ÿ‘‰๐Ÿป object๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๋Š” ์‹ค์ œ๋กœ object๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ object๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋™์ผํ•œ object๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

// obj copy
obj.key1 = "๐ŸŒ";
const objcopy = { ...obj }; //{key1 : '๐ŸŒ', key2 : '๐ŸŽ'}

๐Ÿ‘‰๐Ÿป key1์„ โ€˜๐ŸŒโ€™๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์‹œ ์ถœ๋ ฅํ•œ ๋’ค ํ™•์ธ์„ ํ•ด๋ณด๋ฉด ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โœจโœจโœจ spread ์—ฐ์‚ฐ์ž๋Š” object๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ์ฃผ์†Œ์˜ ์ฐธ์กฐ๊ฐ’๋งŒ์„ ๋ณต์‚ฌํ•ด์˜ค๊ธฐ๋•Œ๋ฌธ์— ์›๋ž˜์˜ object๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๋ฉด spread ํ•ด์˜จ ๊ฐ’์— ์˜ํ–ฅ์„ ์ฃผ๊ธฐ์— ์œ ์˜ํ•ด์„œ ์‚ฌ์šฉํ•  ๊ฒƒ!โœจโœจโœจ

2. Concatenation (์—ฐ๊ฒฐ)

// array
const animal1 = ["๐Ÿถ", "๐Ÿฑ", "๐Ÿญ"];
const animal2 = ["๐Ÿน", "๐ŸฆŠ", "๐Ÿฐ"];
const animals = [...animal1, ...animal2]; // ['๐Ÿถ', '๐Ÿฑ', '๐Ÿญ','๐Ÿน', '๐ŸฆŠ', '๐Ÿฐ']
// obj
const weather1 = { sun: "โ˜€๏ธ" };
const weather2 = { rain: "๐ŸŒง" };
const weather = { ...weather1, ...weather2 }; //{sun : 'โ˜€๏ธ', rain : '๐ŸŒง'}
const flower1 = { rose: "๐ŸŒท" };
const flower2 = { rose: "๐ŸŒน" };
const flower = { ...flower1, ...flower2 }; //{rose : '๐ŸŒน'}

๐Ÿ‘‰๐Ÿป ๋งŒ์•ฝ key๊ฐ€ ๋™์ผํ•œ object๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ฒŒ ๋˜๋ฉด ์ œ์ผ ๋’ค์— ์žˆ๋Š” ๋‚ด์šฉ์ด ์•ž์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋ฎ์–ด์”Œ์šฐ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•  ๊ฒƒ!