๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ๋ชจ๋˜ ๋ฆฌ์•กํŠธ Deep Dive

pjw__98ยท2023๋…„ 12์›” 29์ผ
1
post-thumbnail

๐Ÿ“š ์ฑ•ํ„ฐ

์ „๊ฐœ ๊ตฌ๋ฌธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€

๐Ÿ“† ํ•™์Šต ๋‚ ์งœ

2023 / 12 / 29 (๊ธˆ)


๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ํ•™์Šต ๋‚ด์šฉ

๐ŸŽฏ ์ „๊ฐœ ๊ตฌ๋ฌธ(Spread Syntax)

์ „๊ฐœ ๊ตฌ๋ฌธ(Spread Syntax)์€ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด,๋ฌธ์ž์—ด๊ณผ ๊ฐ™์ด ์ˆœํšŒํ• ์ˆ˜ ์žˆ๋Š” ๊ฐ’์— ๋ง ๊ทธ๋Œ€๋กœ ์ „๊ฐœํ•ด ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ฌธ์ด๋ผ๊ณ ํ•œ๋‹ค.

๐Ÿ“Œ ๋ฐฐ์—ด์˜ ์ „๊ฐœ ๊ตฌ๋ฌธ

ES6 ์ด์ „์—๋Š” ๋ฐฐ์—ด ๊ฐ„์— ํ•ฉ์„ฑ์„ ํ•˜๋ ค๋ฉด push() concat() splice() ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ „๊ฐœ ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด ๋งค์šฐ ์‰ฝ๊ฒŒ ๋ฐฐ์—ด์„ ํ•ฉ์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ž˜ ์˜ˆ์ œ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉฐ ์‚ดํŽด๋ณด์ž.

<script>
const users = ['park' , 'kim']
const usersList = [ ...users , 'song' , 'bang']
 // ['park' , 'kim', 'song' , 'bang']
</script>

๋ฐฐ์—ด ๋‚ด๋ถ€์—์„œ ...๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋ฐฐ์—ด์„ ๋งˆ์น˜ ์ „๊ฐœํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์„ ์–ธํ•˜๊ณ , ์ด๋ฅผ ๋‚ด๋ถ€ ๋ฐฐ์—ด์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋Ÿฌํ•œ ํŠน์ง•์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด ๊ธฐ์กด ๋ฐฐ์—ด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ณ  ๋ฐฐ์—ด์„ ๋ณต์‚ฌ ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

<script>
const users = ['park' , 'kim']
const usersList = users

users === usersList // true. ๋‚ด์šฉ์ด ์•„๋‹Œ ์ฐธ์กฐ๋ฅผ ๋ณต์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const users = ['park' , 'kim']
const usersList = [...users]

users === usersList // false. ์‹ค์ œ๋กœ ๊ฐ’๋งŒ ๋ณต์‚ฌ๋˜๊ณ  ์ฐธ์กฐ๋Š” ๋‹ค๋ฅด๋ฏ€๋กœ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
</script>

๐Ÿ“Œ ๊ฐ์ฒด์˜ ์ „๊ฐœ ๊ตฌ๋ฌธ

๊ฐ์ฒด์—์„œ๋„ ๋ฐฐ์—ด๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค ๋•Œ ์ด ์ „๊ฐœ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,๋ฐฐ์—ด์˜ ์ „๊ฐœ ๊ตฌ๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ
๊ฐ์ฒด๋ฅผ ํ•ฉ์„ฑํ•˜๋Š” ๋ฐ ์žˆ์–ด ํŽธ๋ฆฌํ•จ์„ ๊ฐ€์ ธ๋‹ค ์ค€๋‹ค.

<script>
const userInformation = {
	username : 'park',
   userage : 26,
}

const userInformation2 = {
	name : 'kim',
   age : 28,
}

const users = {...userInformation , ...userInformation2}
// {username: 'park', userage: 26, name: 'kim', age: 28}
</script>

ํ•œ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฐ์ฒด ์ „๊ฐœ ๊ตฌ๋ฌธ์— ์žˆ์–ด์„œ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์œ„์— ์„ ์–ธ๋์„ ๋•Œ์™€ ์•„๋ž˜์— ์„ ์–ธ๋์„ ๋•Œ ์ž‘๋™์˜ ์ˆœ์„œ ์ฐจ์ด๋กœ ์ธํ•ด ์ „ํ˜€ ๋‹ค๋ฅธ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ ๋  ์ˆ˜ ์žˆ๋‹ค.

<script>
 //{park: 26, kim: 25, song: 24, bang: 29}
const usersAge = {
	park : 26,
   kim : 25,
   song : 24,
   bang : 29,
}

//{park: 26, kim: 25, song: 28, bang: 29}
const fixAge = {
...usersAge,
song : 28,
}


const fixAge2 = {
	song : 28,
   ...usersAge,
}
//{song: 24, park: 26, kim: 25, bang: 29}
</script>

fixAge ์™€ fixAge2์˜ ๊ฒฐ๊ด๊ฐ’์€ ๋‹ค๋ฅธ๋ฐ, ์ „๊ฐœ ๊ตฌ๋ฌธ ์ดํ›„์— ๊ฐ’ ํ• ๋‹น์ด ์žˆ๋‹ค๋ฉด ์ „๊ฐœ ๊ตฌ๋ฌธ์ด ํ• ๋‹นํ•œ ๊ฐ’์„ ๋ฎ์–ด์“ฐ๊ฒ ์ง€๋งŒ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ์—๋Š” ์˜คํžˆ๋ ค ์ „๊ฐœ ๊ตฌ๋ฌธ์ด ํ•ด๋‹น ๊ฐ’์„ ๋ฎ์–ด์“ฐ๋Š” ์ผ์ด ๋ฒŒ์–ด์งˆ ๊ฒƒ์ด๋‹ค. ์ „๊ฐœ ๊ตฌ๋ฌธ์— ์žˆ๋Š” ๊ฐ’์„ ๋ฎ์–ด์“ธ๊ฒƒ์ธ์ง€,ํ˜น์€ ๊ทธ ๊ฐ’์„ ๋ฐ›์•„๋“ค์ผ์ง€์— ๋”ฐ๋ผ ์ˆœ์„œ์— ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์ฃผ์˜ํ•˜๋ฉฐ ์ „๊ฐœ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

โžก๏ธ ๋‹ค์Œ ๊ธ€์—์„œ๋Š” ๊ฐ์ฒด ์ดˆ๊ธฐ์ž์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์ž.

profile
โ˜„๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€