๋ฐ˜์‘ํ˜•

javascript๊ณต๋ถ€ 2

[๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive] 12์žฅ ํ•จ์ˆ˜

12.1 ํ•จ์ˆ˜๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํ•จ์ˆ˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ๋ฌธ(statement)์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์ฝ”๋“œ ๋ธ”๋ก์œผ๋กœ ๊ฐ์‹ธ์„œ ํ•˜๋‚˜์˜ ์‹คํ–‰ ๋‹จ์œ„๋กœ ์ •์˜ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ์ž…๋ ฅ์„ ์ „๋‹ฌ๋ฐ›๋Š” ๋ณ€์ˆ˜๋ฅผ (parameter), ์ž…๋ ฅ์„ (argument), ์ถœ๋ ฅ์„ ๋ฐ˜ํ™˜๊ฐ’return value)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 12.2 ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ ์ธก๋ฉด, ์œ ์ง€๋ณด์ˆ˜์™€ ํŽธ์˜์„ฑ์„ ๋†’์ด๊ณ  ์ฝ”๋“œ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 12.3 ํ•จ์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด ๋ฆฌํ„ฐ๋Ÿด์€ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž ๋˜๋Š” ์•ฝ์†๋œ ๊ธฐํ˜ธ๋กœ ์‚ฌ์šฉํ•ด ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ํ‘œ๊ธฐ ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ๋ฆฌํ„ฐ๋Ÿด์€ ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด๋„ ํ‰๊ฐ€๋˜์–ด ๊ฐ’์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์ด ๊ฐ’์€ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ฆ‰ ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. 12.4 ํ•จ์ˆ˜ ์ •์˜ 1. ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ fu..

[๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive] 11์žฅ ์›์‹œ ๊ฐ’๊ณผ ๊ฐ์ฒด์˜ ๋น„๊ต, ์–‡์€ ๋ณต์‚ฌ ๊นŠ์€ ๋ณต์‚ฌ

์ž๋น„์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” 7๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ˆซ์ž, ๋ฌธ์ž์—ด, ๋ถˆ๋ฆฌ์–ธ, Null, undfined, ์‹ฌ๋ฒŒ, ๊ฐ์ฒด ํƒ€์ž…)์€ ํฌ๊ฒŒ ์›์‹œ ํƒ€์ž…๊ณผ ๊ฐ์ฒดํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ํƒ€์ž…์˜ ๊ฐ’์€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. - ์›์‹œ ๊ฐ’์„ ๋ณ€์ˆ˜ ํ• ๋‹น ์‹œ ๋ณ€์ˆ˜(ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„)์—๋Š” ์‹ค์ œ ๊ฐ’์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ๋ณ€์ˆ˜ ํ• ๋‹น ์‹œ ๋ณ€์ˆ˜(ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„)์—๋Š” ์ฐธ์กฐ ๊ฐ’์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. - ์›์‹œ ๊ฐ’ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹น ์‹œ ๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ (pass by value)๋ผ๊ณ  ํ•˜๊ณ , ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ์ฐธ์กฐ์— ์˜ํ•œ ์ „๋‹ฌ (pass by reference)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 11.1 ์›์‹œ ๊ฐ’ 11.1.1 ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’ const o = {}; // const ..

๋ฐ˜์‘ํ˜•