\
[JS] ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„(Lexical Scope) ๋ž€??
ยท
๐Ÿ“š STUDY/JavaScript
์Šค์ฝ”ํ”„๋ž€?์Šค์ฝ”ํ”„(Scope)๋ž€, ์œ ํšจ๋ฒ”์œ„๋ž€ ๋œป์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.  ์Šค์ฝ”ํ”„์˜ ๊ฐœ๋…์„ ์ž˜ ์•Œ์•„์•ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ let, const์™€ var ์„ ์–ธ์ž์˜ ์ฐจ์ด ๋“ฑ์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์„ ๋œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  [์ถ”๊ฐ€ ๊ธ€ ์ž‘์„ฑ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.] ์Šค์ฝ”ํ”„์˜ ์ข…๋ฅ˜์ฝ”๋“œ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€์˜ ์Šค์ฝ”ํ”„๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ๊ฐ€์žฅ ๋ฐ”๊นฅ ์˜์—ญ, ์ „์—ญ ์Šค์ฝ”ํ”„ํ•จ์ˆ˜ ๋ชธ์ฒด ๋‚ด๋ถ€ ์˜์—ญ, ์ง€์—ญ ์Šค์ฝ”ํ”„ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด,  ์˜ˆ์ œ ์ฝ”๋“œ ๋‚ด๋ถ€์— ์œ„์™€ ๊ฐ™์€ ์Šค์ฝ”ํ”„๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [์ถ”๊ฐ€ ๊ธ€ ์ž‘์„ฑ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.] ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์˜ˆ์ธก ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž ์‹œ ์Šคํฌ๋กค์„ ๋ฉˆ์ถ”๊ณ  ์ƒ๊ฐํ•ด๋ณด๊ธธ ๊ถŒํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.var x = 1;function foo() { var x = 10; ..