๋ฐ˜์‘ํ˜•

๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 2

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

13.1 ์Šค์ฝ”ํ”„๋ž€?๋ชจ๋“  ์‹๋ณ„์ž(๋ณ€์ˆ˜ ์ด๋ฆ„, ํ•จ์ˆ˜ ์ด๋ฆ„, ํด๋ž˜์Šค ์ด๋ฆ„ ๋“ฑ)๋Š” ์ž์‹ ์ด ์„ ์–ธ๋œ ์œ„์น˜์— ์˜ํ•ด ๋‹ค๋ฅธ ์ฝ”๋“œ๊ฐ€ ์‹๋ณ„์ž ์ž์‹ ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ  ๋ฒ”์œ„๊ฐ€ ๊ฒฐ์ •๋˜๋น„๋‹ค. ์ด๋ฅผ ์Šค์ฝ”ํ”„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์Šค์ฝ”ํ”„๋Š” ์‹๋ณ„์ž๊ฐ€ ์œ ํšจํ•œ ๋ฒ”์œ„๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. var x = 'global' function foo() { var x = 'local' console.log(x) //local } foo() console.log(x) //global 13.2 ์Šค์ฝ”ํ”„์˜ ์ข…๋ฅ˜์ฝ”๋“œ๋Š” ์ „์—ญ๊ณผ ์ง€์—ญ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค 13.2.1 ์ „์—ญ๊ณผ ์ง€์—ญ ์Šค์ฝ”ํ”„์ „์—ญ์ด๋ž€ ์ฝ”๋“œ์˜ ๊ฐ€์žฅ ๋ฐ”๊นฅ ์˜์—ญ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ „์—ญ์€ ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ „์—ญ ๋ณ€์ˆ˜๋Š” ์–ด๋””์„œ๋“  ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 13.2.2 ์ง€์—ญ๊ณผ ์ง€์—ญ ์Šค์ฝ”ํ”„์ง€์—ญ์ด๋ž€ ํ•จ์ˆ˜ ๋ชธ์ฒด ๋‚ด๋ถ€๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ง€..

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

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

๋ฐ˜์‘ํ˜•