with JavaScripts Study Days 1-2

with JavaScripts Study Days 1-2

CH1 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ๊ณผ ๋ชจ๋ธ

1.2 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ

1.2.1 ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™” ~ 1.2.5 ํ•จ์ˆ˜

์–ด์ œ ์˜ค์ „๋ถ€ํ„ฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ๊ณ  ๊นƒํ—™์— ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ ธ๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ํ•จ์ˆ˜ ์˜ˆ์ œ ์ฝ”๋“œ๊นŒ์ง€ ๋”ฐ๋ผ ์ณค๋Š”๋ฐ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅธ ์ ์€ ์—†๋‹ค. switch๋ฌธ์— ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ํ‘œํ˜„์‹์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฅธ๋ฐ switch๋ฌธ ์ž์ฒด๊ฐ€ ํšจ์œจ์ ์ด์ง€๋Š” ์•Š๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ชจ๋“  ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ ๋ ˆํผ๋Ÿฐ์Šค ์ „์šฉ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์—†๋‹ค.(์ฒ˜์Œ์—๋Š” ํ™•์‹คํžˆ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š์€ ๋ถ€๋ถ„) ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ๊ฐ์ฒด ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ ˆํผ๋Ÿฐ์Šค๋กœ ์ „๋‹ฌ๋œ๋‹ค.
๋ฒˆ์—ญํŒ์ด๋ผ์„œ ๊ทธ๋Ÿฐ ๊ฑด์ง€ ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ๋ช…ํ™•ํžˆ ์ดํ•ด๊ฐ€ ์ž˜ ๋˜์ง€ ์•Š์•„์„œ ๋” ์ž์„ธํžˆ ์ฐพ์•„๋ณด์•˜๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค ์ „์šฉ ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๋“ ์ง€ ๊ฐ์ฒด ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ์•Œ์•„๋ณด์•˜๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ ํƒ€์ž…(number, string, boolean, null, undefined)์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฐ’์ด '๊ฐ์ฒด'์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด, ํ•จ์ˆ˜, ์ •๊ทœํ‘œํ˜„์‹ ๋“ฑ์€ ๋ชจ๋‘ ๊ฐ์ฒด๋กœ ํ‘œํ˜„๋œ๋‹ค. ์ด๊ฒƒ์€ย ๊ฐ์ฒด์˜ ๋ชจ๋“  ์—ฐ์‚ฐ์ด ์‹ค์ œ ๊ฐ’์ด ์•„๋‹Œ ์ฐธ์กฐ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.(์—ฌ๊ธฐ์„œ๋Š” ์ด ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์ด ์•ž์„  ๋ฌธ์žฅ๊ณผ ์–ด๋–ค ์—ฐ๊ด€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ธ์ง€ ์ดํ•ด๋˜์ง€ ์•Š์•˜๋‹ค.)
"๊ธฐ๋ณธ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž…์˜ ๊ฒฝ์šฐ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹๋„ ๋‹ค๋ฅด๋‹ค. ๊ธฐ๋ณธ ํƒ€์ž…์€ย ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ (Call By Value)๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๊ธฐ๋ณธ ํƒ€์ž…์ด ๋„˜๊ฒจ์งˆ ๊ฒฝ์šฐ, ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœย ๋ณต์‚ฌ๋œ ๊ฐ’์ด ์ „๋‹ฌ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋„, ์‹ค์ œ๋กœ ํ˜ธ์ถœ๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์œ„ ์˜ˆ์ œ์ฒ˜๋Ÿผ 100์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.๋ฐ˜๋ฉด ๊ฐ์ฒด์™€ ๊ฐ™์€ ์ฐธ์กฐ ํƒ€์ž…์˜ ๊ฒฝ์šฐ, ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œย ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ( Call By Reference ) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ์ฆ‰, ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ๊ฐ์ฒด์˜ย ์ฐธ์กฐ๊ฐ’์ด ์ „๋‹ฌ๋˜๊ณ , ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ฐธ์กฐ๊ฐ’์„ ์ด์šฉํ•ด์„œ ์ธ์ž๋กœ ๋„˜๊ธด ์‹ค์ œ ๊ฐ์ฒด์˜ ๊ฐ’์„ 200์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค."
์ด์ฒ˜๋Ÿผ call by value, call by reference ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ๋Š” ๋งŽ์ด ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค.
๊ธฐ๋ณธ ํƒ€์ž…์˜ ๊ฐ’์„ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์ฃผ์—ˆ์„ ๋•Œ ๊ทธ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์–ด๋–ค ๋‹ค๋ฅธ ๊ฐ’์„ ํ• ๋‹นํ•˜๋”๋ผ๋„ ๊ทธ ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์˜ํ–ฅ์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ์ฒด์™€ ๊ฐ™์€ ์ฐธ์กฐ ํƒ€์ž…์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•จ์ˆ˜๋กœ ๋„˜๊ฒจ ์ฃผ์—ˆ์„ ๊ฒฝ์šฐ์—๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ ๊ฐ์ฒด์˜ ์†์„ฑ๊ฐ’๋“ค์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ  ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋”๋ผ๋„ ์›๋ž˜ ๋ฐ์ดํ„ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.
ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋”ฐ๋กœ ์ƒ์„ฑํ•ด ๊ฐ’ ์ž์ฒด๋ฅผ ์ƒˆ๋กœ ํ• ๋‹นํ•ด์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†๋‹ค.(์ด ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์— ๋Œ€ํ•ด์„œ ์ดํ•ด๊ฐ€ ์ž˜ ๋˜์ง€ ์•Š๋Š”๋‹ค.)
์œ„ ๋ธ”๋กœ๊ทธ์—์„œ ์ด์— ๋Œ€ํ•œ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ œ๊ณตํ•ด์ฃผ์—ˆ๋‹ค.
notion image
๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒดํ˜•์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•ด์ฃผ์ง€๋งŒ ์†์„ฑ๊ฐ’์ด ์•„๋‹ˆ๋ผ ๊ทธ ๊ฐ’ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?
๋ณ€๊ฒฝ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค! (์ž๋ฐ”์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ์ด๋‹ค.)
์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ•ญ์ƒ Call by value์ด๋ฉฐย  ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด ๊ฐ™์€ Referenceํ˜• ํƒ€์ž…์ด ๊ฒฝ์šฐ์—๋„ ์‹ค์ œ๋กœ๋Š” ๊ทธ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์–ด value๋กœ function์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ function์œผ๋กœ ๋„˜๊ฒจ ๋ฐ›์€ ํŒŒ๋ผ๋ฏธํ„ฐ ์•ˆ์— ์žˆ๋Š” ์†์„ฑ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด๋„ ์ž๊ธฐ ์ž์‹ ์˜ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•ด์„œ ๋‹ค์‹œ ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด๋‹ค.
๋‹ค์‹œ ์ •๋ฆฌํ•ด๋ณด๋ฉด ํ•จ์ˆ˜๋กœ ๋ณด๋‚ด์ง€๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ a๋ผ๋Š” ๊ฐ์ฒด๋ผ๋ฉด ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ทธ a๋ผ๋Š” ๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’์— ๋Œ€ํ•œ ๋ณต์‚ฌ๋ณธ(Call by value์— ์˜ํ•ด)์ธ ๊ฒƒ์ด๋‹ค.
๋งŒ์•ฝ ํ•จ์ˆ˜ ๋‚ด์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ฐ’ ์ž์ฒด๋ฅผ ์žฌํ• ๋‹นํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์›๋ž˜ ๊ฐ์ฒด a๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋˜ ๊ฒƒ์ด ๋‹ค๋ฅธ ์ฐธ์กฐ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. ์ฐธ์กฐ๊ฐ’ ์ž์ฒด๋ฅผ ์žฌํ• ๋‹นํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์†์„ฑ๊ฐ’์— ์ ‘๊ทผํ•ด์„œ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ์ฒด a๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†์„ฑ๊ฐ’ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์ด์™€ ๊ฐ™๋‹ค.
notion image
a๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€์ง„ ๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’๊ณผ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ์‹ค์ œ ๊ฐ’
notion image
ํ•จ์ˆ˜์— b๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฐ์ฒด a์™€ b๊ฐ€ ๊ฐ€์ง„ a์˜๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’(๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒƒ)
notion image
b์— "=" ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๊ฐ’์„ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด์— ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’์ด ์‚ฌ๋ผ์ง€๊ณ  ์ƒˆ๋กœ์šด ์ฐธ์กฐ๊ฐ’์— 1์„ ํ• ๋‹นํ•˜๊ฒŒ ๋œ๋‹ค.

210429 ๋ชฉ์š”์ผ

๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉด์„œ 1์ผ์ฐจ ๋ณต์Šต์„ ์™„๋ฃŒํ•˜๊ณ  1.2.6 ๋ณ€์ˆ˜ ๋ฒ”์œ„๋ถ€ํ„ฐ 2์ผ์ฐจ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

1.2 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ

1.2.6 ๋ณ€์ˆ˜ ๋ฒ”์œ„

๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋Š” ์–ด๋Š ์œ„์น˜์—์„œ ๋ณ€์ˆ˜๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.ย ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ํ•จ์ˆ˜ ๋ฒ”์œ„๋กœ ์ •์˜๋œ๋‹ค. ํ•จ์ˆ˜ ๋ฒ”์œ„๋ž€ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ณ  ์ •์˜๋œ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ž์œ ๋กญ๊ฒŒ ๋ณ€์ˆ˜์˜ ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•œ๋‹ค.
ํ•จ์ˆ˜์˜ ์™ธ๋ถ€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ „์—ญ ๋ฒ”์œ„๋ฅผ ๊ฐ–๋Š”๋‹ค. ์–ด๋””์„œ๋‚˜ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋‚ด์šฉ์€ ๊ธฐ์กด์— ์•„๋Š” ๋‚ด์šฉ๊ณผ ๊ฐ™์•˜๋‹ค.
๋ณ€์ˆ˜ ์ •์˜์—์„œ var ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒํ™ฉ์€ 180๋„ ๋‹ฌ๋ผ์ง„๋‹ค. var ํ‚ค์›Œ๋“œ ์—†์ด ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด(ํ•จ์ˆ˜ ๋‚ด์— ์„ ์–ธํ–ˆ๋‹ค ํ• ์ง€๋ผ๋„) ๊ทธ ๋ณ€์ˆ˜๋Š” ์ž๋™์œผ๋กœ ์ „์—ญ ๋ฒ”์œ„๋ฅผ ๊ฐ–๋Š”๋‹ค.
notion image
ํ•จ์ˆ˜์—์„œ ์„ ์–ธํ•œ scope ๋ณ€์ˆ˜์— var ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์—ญ ๋ณ€์ˆ˜ scope์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋œ๋‹ค.ย ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ํ˜ผ๋™์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•ญ์ƒ var ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ํ•จ์ˆ˜ ๋ฒ”์œ„๋ฅผ ๊ฐ–๋Š”๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ธ”๋ก ๋ฒ”์œ„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•œ๋‹ค.(์ด๊ฒƒ์€ c++, ์ž๋ฐ” ๋“ฑ์—์„œ ์ ‘ํ•ด๋ณด์•˜๋‹ค.)
๊ทธ๋Ÿฐ๋ฐ ES6(ES2015)์—์„œย ย let์ด ์ง€์›๋˜๋ฉด์„œ ๋ธ”๋ก ๋ฒ”์œ„์˜ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.
"let์€ย ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๋ธ”๋ก, ๊ตฌ๋ฌธ ๋˜๋Š” ํ‘œํ˜„์‹ ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค. ์ด๋Š”ย varย ํ‚ค์›Œ๋“œ๊ฐ€ ๋ธ”๋ก ๋ฒ”์œ„๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ „์—ญ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜ ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ์„ ์–ธ๋˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ์ ์ด๋‹ค."
๋˜ํ•œ let์€ var์™€ ๋‹ฌ๋ฆฌ ์žฌํ• ๋‹น ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ•ด์ค€๋‹ค.
notion image
notion image
๊ทธ ๋ฐ–์—๋„ var์€ ํ˜ธ์ด์ŠคํŒ…์ด ์ง€์›๋œ๋‹ค. ํ˜ธ์ด์ŠคํŒ…์ด๋ž€
๋ณ€์ˆ˜์˜ ์ •์˜๊ฐ€ ๊ทธ ๋ฒ”์œ„์— ๋”ฐ๋ผ ์„ ์–ธ๊ณผ ํ• ๋‹น์œผ๋กœ ๋ถ„๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค.
๋ณ€์ˆ˜๊ฐ€ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ •์˜๋œ ๊ฒฝ์šฐ๋Š” ์„ ์–ธ์ด ํ•จ์ˆ˜์˜ ์ตœ์ƒ์œ„๋กœ, ํ•จ์ˆ˜ ๋ฐ”๊นฅ์—์„œ ์ •์˜๋œ ๊ฒฝ์šฐ๋Š” ์„ ์–ธ์ด ์ „์—ญ ์ปจํ…์ŠคํŠธ์˜ ์ตœ์ƒ์œ„๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ฝ”๋“œ์˜ ์ˆœ์„œ์™€ ์ƒ๊ด€ ์—†์ด ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์„ ์–ธ๋ฌธ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋จผ์ € ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ์„ ๋ฟย ๊ฐ’์ด ํ• ๋‹น๋˜์ง€๋Š” ์•Š์€ ๊ฒƒ์ด๋ฏ€๋กœ undefined๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ฐ’์€ ํ• ๋‹น๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์ด ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์€ ํ˜ธ์ด์ŠคํŒ…์ด ์ผ์–ด๋‚˜์ง€๋งŒ ํ•จ์ˆ˜ ํ‘œํ˜„์‹(๊ฐ’์œผ๋กœ ํ• ๋‹น๋˜๋Š”)์€ ํ˜ธ์ด์ŠคํŒ…์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
notion image
์ฆ‰, ๋ช…ํ™•ํ•˜๊ณ  ์‹ฌํ”Œํ•˜๊ฒŒ ๋งํ•˜๋ฉดย JS์—์„œ var๋Š” function scope์ด์ง€๋งŒ es6์—์„œ ์ถ”๊ฐ€๋œ const, let์€ block scope์ด๋‹ค.

1.2.7 ์žฌ๊ท€

JS๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ง€์›ํ•œ๋‹ค.
function factorial(number) {
	if(number == 1) {
    	return number;
    }
    else {
    	return number * factorial(number-1);
    }
}

console.log(factorial(5));
๋™์ž‘ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
5 * factorial(4)
5 * 4 * factorial(3)
5 * 4 * 3 * factorial(2)
5 * 4 * 3 * 2 * factorial(1)
5 * 4 * 3 * 2 * 15 * 4 * 3 * 25 * 4 * 65 * 24120
JS๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์„ ์ •๋„๋กœ ๊นŠ์€ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์š”ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐ˜๋ณต ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜์ž.

1.3 ๊ฐ์ฒด์™€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ด ์ฑ…์—์„œ ์„ค๋ช…ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ์ฒด๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.
๊ฐ์ฒด๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ •์˜ํ•œ๋‹ค. ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ, ํ•จ์ˆ˜ ์„ ์–ธ, ํ•จ์ˆ˜ ์ •์˜๋ฅผ ํฌํ•จํ•œ๋‹ค. ๋‹ค์Œ์€ Checking ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์˜ˆ์ œ์ด๋‹ค.
function Checking(amount) {
    this.balance = amount;// ํ”„๋กœํผํ‹ฐthis.deposit = deposit;// ํ•จ์ˆ˜this.withdraw = withdraw// ํ•จ์ˆ˜this.toString = toString// ํ•จ์ˆ˜
}
this ํ‚ค์›Œ๋“œ๋Š” ๊ฐ ํ•จ์ˆ˜์™€ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์ด๋‹ค.
function deposit(amount) {
	this.balance += amount;
}

function withdraw(amount) {
	if(amount <= this.balance) {
    	this.balance -= amount;
    }
    if(amount > this.balance) {
    	console.log("Insufficient funds");
    }
}

function toString(){
	return "Balance: " + this.balance;
}
์ด๋ฒˆ์—๋„ ์–ด๋–ค ๊ฐ์ฒด์˜ balance ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก this ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
์œ— ์ฝ”๋“œ์— ์ด์–ด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.
let account = new Checking(500);
account.deposit(1000);
console.log(account.toString());// Balance : 1500
account.withdraw(750);
console.log(account.toString());// Balance : 750
account.withdraw(800);// "Insufficient funds" ์ถœ๋ ฅconsole.log(account.toString());// Balance : 750

CH2 ๋ฐฐ์—ด

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐฐ์—ด์ด๋‹ค. ๋ฐฐ์—ด์€ ๋‚ด์žฅ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ๋งค์šฐ ํšจ์œจ์ ์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๊ณ  ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ• ์ง€ ์•Œ์•„๋ณธ๋‹ค.

2.1 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด ์ •์˜

๋ฐฐ์—ด์€ ์ •์ˆ˜ ์ธ๋ฑ์Šค(์˜คํ”„์…‹)๋ฅผ ์ด์šฉํ•ด ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ˆœ์ฐจ์ ์œผ๋กœ ์š”์†Œ๋ฅผ ์ €์žฅํ•œ ์ง‘ํ•ฉ์ฒด๋‹ค. JS๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ ์ฐจ์ด์ ์ด ์กด์žฌํ•œ๋‹ค.
JS์˜ ๋ฐฐ์—ด์€ ํŠนํ™”๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋ฉฐ ์ •์ˆ˜ ์ธ๋ฑ์Šค(๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„ ์—ญํ• )๋กœ ๊ฐ์ฒด ๋‚ด ๋ฐ์ดํ„ฐ ์˜คํ”„์…‹์„ ํ‘œํ˜„ํ•œ๋‹ค. ์ •์ˆ˜๋ฅผ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒย ๋‚ด๋ถ€์ ์œผ๋กœ ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
์—„๋ฐ€ํžˆ ๋งํ•ด JS ๋ฐฐ์—ด์€ JS ๊ฐ์ฒด์ง€๋งŒ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ํŠนํ™”๋œ ๊ฐ์ฒด์ด๋ฏ€๋กœ ๋ฐฐ์—ด๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.(Array : ๋ฏธ๋ฆฌ ์ •์˜๋œ ํ”„๋กœํผํ‹ฐ์™€ ํ•จ์ˆ˜ ์ด์šฉ ๊ฐ€๋Šฅ)

2.2 ๋ฐฐ์—ด ์‚ฌ์šฉํ•˜๊ธฐ

2.2.1 ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

let numbers = [];// or [1,2,3,4,5];console.log(numbers.length);// 0
or
let numbers = new Array();// new Array(1,2,3,4,5);console.log(numbers.length);// 0
or
let numbers = new Array(10);// ๋งŒ์•ฝ ์š”์†Œ ํ•œ๊ฐœ๋กœ ๋งŒ๋“œ๋ ค๋ฉด new Array([10]);console.log(numbers.length);// 10
๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ํ•œ ๋ฐฐ์—ด์ด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์š”์†Œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.(๋Œ€๋ถ€๋ถ„์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๊ฐ€ ๊ทธ๋ ‡๋‹ค.)
let objects = [1, "Joe", true, null];
Array.isArray()๋กœ ํŠน์ • ๊ฐ์ฒด๊ฐ€ ๋ฐฐ์—ด์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
let numbers = 3;
let arr = [ 7, 4, 1776 ];
console.log(Array.isArray(number));// falseconsole.log(Array.isArray(arr));// true
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ „๋ฌธ๊ฐ€๋Š” Array ์ƒ์„ฑ์ž๋ณด๋‹ค [] ์‚ฌ์šฉ์ด ๋” ํšจ์œจ์ ์ด๋ผ๊ณ  ์ถ”์ฒœํ•œ๋‹ค.

2.2.2 ๋ฐฐ์—ด ์š”์†Œ ์ ‘๊ทผํ•˜๊ณ  ๊ฐ’ ๊ณ ์น˜๊ธฐ

for๋ฌธ์„ ์ด์šฉํ•ด ๋ชจ๋“  ๋ฐฐ์—ด ์š”์†Œ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค. for ๋ฌธ์—์„œ๋Š” ์ˆซ์ž ๋Œ€์‹  length ํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•œ๋‹ค.ย JS ๋ฐฐ์—ด์€ ๊ฐ์ฒด์ด๋ฏ€๋กœ ๋ฐฐ์—ด์„ ๋งŒ๋“  ๋‹ค์Œ์— ์–ธ์ œ๋“ ์ง€ ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค. length ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ๋ฐฐ์—ด์˜ ์‹ค์ œ ์š”์†Œ ์ˆ˜๊ฐ€ ์ •ํ™•ํžˆ ๋ฐ˜ํ™˜๋˜๋ฏ€๋กœ ์–ธ์ œ๋‚˜ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

2.2.3 ๋ฌธ์ž์—ด๋กœ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

๋ฌธ์ž์—ด์— split() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋œ๋‹ค.ย ์ด ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ํŠน์ • ๊ตฌ๋ถ„์ž(๊ณต๋ฐฑ ๋“ฑ)๋กœ ๋ถ„๋ฆฌํ•œ ๋‹ค์Œ ๋ถ„๋ฆฌ๋œ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
notion image

2.2.4 ๋ฐฐ์—ด ์ „์ฒด์— ์ ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ

๋ฐฐ์—ด์„ ๋‹ค๋ฅธ ๋ฐฐ์—ด๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.
let nums = [];
for (let i = 0; i < 10; ++i) {
    nums[i] = i + 1;
}
let samenums = nums;
๋ฐฐ์—ด์„ ๋‹ค๋ฅธ ๋ฐฐ์—ด๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ํ• ๋‹น๋œ ๋ฐฐ์—ด์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์›๋ž˜ ๋ฐฐ์—ด์„ ๋ฐ”๊พธ๊ฒŒ ๋˜๋ฉด ํ• ๋‹น๋œ ๋ฐฐ์—ด๋„ ๋ฐ”๋€๋‹ค.
let nums = [];
for (let i = 0; i < 10; ++i) {
    nums[i] = i + 1;
}
let samenums = nums;
nums[0] = 400;
console.log(samenums[0]);// 400
์ด์™€ ๊ฐ™์€ ๋™์ž‘์„ ์–•์€ ๋ณต์‚ฌ(shallow copy)๋ผ๊ณ  ํ•œ๋‹ค.
๊นŠ์€ ๋ณต์‚ฌ(deep copy), ์›๋ž˜ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์š”์†Œ๋กœ ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค.
function copy(arr1, arr2) {
    for (let i = 0; i < arr1.length; ++i) {
        arr2[i] = arr1[i];
    }
}

let nums = [];
for (let i = 0; i < 10; ++i) {
    nums[i] = i + 1;
}
let samenums = [];
copy(nums, samenums);
nums[0] = 400;
console.log(samenums[0]);// 1
๊ทธ ์™ธ์—๋Š” print()๋„ ๋ฐฐ์—ด ์ „์ฒด ์ ์šฉ ๊ธฐ๋Šฅ์ด๋‹ค.

2.3 ์ ‘๊ทผ์ž ํ•จ์ˆ˜

๋ฐฐ์—ด ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”ย ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜ ์ œ๊ณต.ย ์ด๋“ค์„ย ์ ‘๊ทผ์ž ํ•จ์ˆ˜(accessor function)์ด๋ผ ํ•˜๋ฉฐ ํŠน์ •๊ฐ’์„ ํฌํ•จํ•˜๋Š” ๊ฒฐ๊ณผ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

2.3.1 ๊ฐ’ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ย indexOf()์ด๋‹ค. ์ธ์ž๋กœ ์ œ๊ณต๋œ ๊ฐ’์ด ๋ฐฐ์—ด์— ์กด์žฌํ•˜๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค.ย ์ธ์ž๋กœ ์ œ๊ณต๋œ ๊ฐ’์ด ๋ฐฐ์—ด์— ์žˆ์œผ๋ฉด ์ธ๋ฑ์Šค ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์—†์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
notion image
indexOf()๋กœ ์ฐพ์œผ๋ ค๋Š” ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ฉดย ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐœ๊ฒฌํ•œ ์ธ์ž์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.ย lastIndexOf()๋Š” ๋ฐฐ์—ด์—์„œ ์ผ์น˜ํ•˜๋Š” ๊ฐ’ ์ค‘ ๋งˆ์ง€๋ง‰ ์ธ์ž์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ์—†์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

2.3.2 ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•˜๊ธฐ

join(), toString() ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋‘ ํ•จ์ˆ˜ ๋ชจ๋‘ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
// join, toString : ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ํ‘œํ˜„let names = ["D", "C", "R", "L", "J"];

let namestr = names.join();
console.log(namestr);

namestr = names.toString();
console.log(namestr);
console.log()์˜ ์ธ์ž๋กœ ๋ฐฐ์—ด์˜ ์ด๋ฆ„์„ ์ œ๊ณตํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ฐฐ์—ด์˜ toString(0์ด ํ˜ธ์ถœ๋œ๋‹ค.

2.3.3 ๊ธฐ์กด ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ์ƒˆ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

concat(), splice()๋Š” ๊ธฐ์กด ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ์ƒˆ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜๋‹ค. concat()์€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ํ•ฉ์ณ ์ƒˆ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ ,ย splice()๋Š” ๊ธฐ์กด ๋ฐฐ์—ด์˜ ์„œ๋ธŒ์…‹์œผ๋กœ ์ƒˆ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.
๊ธฐ์กด์˜ ๋ฐฐ์—ด์— concat()์„ ํ˜ธ์ถœํ•˜๋ฉด ์ธ์ž๋กœ ๋˜ ๋‹ค๋ฅธ ๊ธฐ์กด ๋ฐฐ์—ด์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ธ์ž๋กœ ์ œ๊ณต๋œ ๋ฐฐ์—ด์ด ์›๋ž˜ concat() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๋ฐฐ์—ด ๋’ค๋กœ ์ถ”๊ฐ€๋œ๋‹ค.
notion image
์ฒ˜์Œ์—” dmpDept๊ฐ€ ๋’ค์— ๋ถ™๊ณ  ๊ทธ ๋‹ค์Œ์€ ์•ž์— ๋ถ™๋Š”๋‹ค.
splice()๋Š” ๊ธฐ์กด ๋ฐฐ์—ด์˜ ์š”์†Œ๋กœ ์ƒˆ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.ย splice()๋Š” ์‚ฌ์šฉํ•  ์ฒซ ์š”์†Œ์˜ ์œ„์น˜, ๊ธฐ์กด ๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•  ์š”์†Œ์˜ ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค.
notion image
dmpDept์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ณด๋ฉด L๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๊ณ  ์žˆ๋Š”๋ฐ ๊ธฐ์กด ๋ฐฐ์—ด์˜ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ 3์œผ๋กœ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. itDiv[3]์€ ์‹ค์ œ๋กœ ๋„ค ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ 3์„ ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ์š”์†Œ๋ถ€ํ„ฐ 3๊ฐœ์˜ ์š”์†Œ๋ฅผ ๋ฝ‘์•„์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ค€ ๊ฒƒ์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์š”์†Œ๋“ค์ด ์ œ๊ฑฐ๋œ ๊ธฐ์กด ๋ฐฐ์—ด itDiv์„ ๋ณด๋ฉด ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์šฉ๋„๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.