๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

scope1

[JavaScript] Scope๋ž€? ๐Ÿ‘‍๐Ÿ—จ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„(function-level scope)๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ž€ ํ•จ์ˆ˜ ์ฝ”๋“œ ๋ธ”๋ก ๋‚ด์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์ฝ”๋“œ ๋ธ”๋ก ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•˜๊ณ  ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ๋Š” ์œ ํšจํ•˜์ง€ ์•Š๋‹ค(์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค)๋Š” ๊ฒƒ์ด๋‹ค. ๐Ÿ‘‰๐Ÿป๋‹จ, ECMAScript 6์—์„œ ๋„์ž…๋œ let keyword๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป Scope๋ž€? Scope๋Š” ์ง์—ญํ•˜๋ฉด "๋ฒ”์œ„"๋ผ๋Š” ๋œป์ด๋‹ค. JavaScript ์—์„œ Scope(์Šค์ฝ”ํ”„)๋Š” ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋งํ•œ๋‹ค. ์‹๋ณ„์ž(๋ณ€์ˆ˜)๋ฅผ ์ฐพ๊ธฐ์œ„ํ•œ ๊ทœ์น™์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์‹๋ณ„์ž์˜ ์œ ํšจ ๋ฒ”์œ„ ⇒ ๋ชจ๋“  ์‹๋ณ„์ž๋Š” ์ž์‹ ์ด ์„ ์–ธ๋œ ์œ„์น˜์— ์˜ํ•˜์—ฌ ๋‹ค๋ฅธ ์ฝ”๋“œ๊ฐ€ ์‹๋ณ„์ž ์ž์‹ ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํšจ ๋ฒ”์œ„๊ฐ€ ๊ฒฐ์ •๋จ. var x = 'global'; f.. 2022. 11. 5.