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๋ฅผ ๋ณํฉํ๊ฒ ๋๋ฉด ์ ์ผ ๋ค์ ์๋ ๋ด์ฉ์ด ์์ ์๋ ๋ด์ฉ์ ๋ฎ์ด์์ฐ๊ธฐ ๋๋ฌธ์ ์ฃผ์ํ ๊ฒ!