[JavaScript] ์‹คํ–‰ ์ปจํ…์ŠคํŠธ

์‹คํ–‰ ์ปจํ…์ŠคํŠธ(execution context)๋ž€? ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ณ  ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ œ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์˜์—ญ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ•ต์‹ฌ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์†Œ์Šค์ฝ”๋“œ์˜ ํƒ€์ž… ECMAScript ์‚ฌ์–‘์€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ 4๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ํƒ€์ž…์— ๋”ฐ๋ผ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •๊ณผ ๊ด€๋ฆฌ ๋‚ด์šฉ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์†Œ์Šค์ฝ”๋“œ ํƒ€์ž… ์„ค๋ช… ์ „์—ญ ์ฝ”๋“œ - ์ „์—ญ์— ์กด์žฌํ•˜๋Š” ์†Œ์Šค์ฝ”๋“œ - ์ตœ์ƒ์œ„ ์Šค์ฝ”ํ”„์ธ ์ „์—ญ ์Šค์ฝ”ํ”„ ์ƒ์„ฑ - ์ „์—ญ ์ฝ”๋“œ๊ฐ€ ํ‰๊ฐ€๋˜๋ฉด ์ „์—ญ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ ํ•จ์ˆ˜ ์ฝ”๋“œ - ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ์†Œ์Šค์ฝ”๋“œ - ์ง€์—ญ ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑ - ํ•จ์ˆ˜ ์ฝ”๋“œ๊ฐ€ ํ‰๊ฐ€๋˜๋ฉด ํ•จ์ˆ˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ eval ์ฝ”๋“œ - ๋นŒํŠธ์ธ ์ „์—ญ ํ•จ์ˆ˜์ธ eval ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์ „๋‹ฌ๋˜์–ด ์‹คํ–‰๋˜๋Š” ์†Œ..