์ค์ฝํ2 [JavaScript] ์ค์ฝํ ์ฒด์ธ์ด๋? ์ค์ฝํ๋? ๋ณ์(์๋ณ์)์ ์ ํจ ๋ฒ์๋ฅผ ๋ปํ๋ค. ์ค์ฝํ(Scope)๋ ๋ณ์๊ฐ ์ด๋์, ์ด๋ป๊ฒ ์ ์ธ๋์๋์ง์ ๋ฐ๋ผ ๊ทธ ๋ณ์์ ์ ํจํ ๋ฒ์๊ฐ ๊ฒฐ์ ๋๋ ๊ท์น์ด๊ธฐ๋ ํ๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ด ๊ท์น์ ๋ฐ๋ผ ์ฐธ์กฐ์ ๋์์ด ๋๋ ๋ณ์๋ฅผ ํ์ํด๋๊ฐ๋ค. (→ ๊ทธ๊ฒ์ Scope Chain) ๐์ค์ฝํ์ฒด์ธ? ์๋ฐ์ค ํฌ๋ฆฝํธ ES2015๊ธฐ์ค์ผ๋ก ํ๋ฐ๋ ์์ ์ ํจ์๊ฐ ๊ธฐ์ค์ด์๋๋ฐ ์์ฆ์ ๋ธ๋ก์ด ๊ธฐ์ค์ด๋ค( ํจ์๋ ๋คํํ ๋ธ๋ก์ ๊ฐ์ง๊ณ ์๋ค ) ์ค์ฝํ ์ฒด์ธ(Scope Chain)์ ์ผ์ข ์ ๋ฆฌ์คํธ๋ก์ ์ ์ญ ๊ฐ์ฒด์ ์ค์ฒฉ๋ ํจ์์ ์ค์ฝํ์ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐจ๋ก๋ก ์ ์ฅํ๊ณ , ์๋ฏธ ๊ทธ๋๋ก ๊ฐ๊ฐ์ ์ค์ฝํ๊ฐ ์ด๋ป๊ฒ ์ฐ๊ฒฐ(chain)๋๊ณ ์๋์ง ๋ณด์ฌ์ฃผ๋ ๊ฒ ์ ๋งํ๋ค. ์ ํจ ๋ฒ์๋ฅผ ๋ํ๋ด๋ ์ค์ฝํ๊ฐ scope ํ๋กํผํฐ๋ก ๊ฐ ํจ์ ๊ฐ์ฒด ๋ด์์ ์ฐ๊ฒฐ๋ฆฌ์คํธ.. 2022. 11. 9. [JavaScript] Scope๋? ๐๐จ์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์ ๋ ๋ฒจ ์ค์ฝํ(function-level scope)๋ฅผ ๋ฐ๋ฅธ๋ค. ํจ์ ๋ ๋ฒจ ์ค์ฝํ๋ ํจ์ ์ฝ๋ ๋ธ๋ก ๋ด์์ ์ ์ธ๋ ๋ณ์๋ ํจ์ ์ฝ๋ ๋ธ๋ก ๋ด์์๋ง ์ ํจํ๊ณ ํจ์ ์ธ๋ถ์์๋ ์ ํจํ์ง ์๋ค(์ฐธ์กฐํ ์ ์๋ค)๋ ๊ฒ์ด๋ค. ๐๐ป๋จ, ECMAScript 6์์ ๋์ ๋ let keyword๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๐จ๐ป๐ป Scope๋? Scope๋ ์ง์ญํ๋ฉด "๋ฒ์"๋ผ๋ ๋ป์ด๋ค. JavaScript ์์ Scope(์ค์ฝํ)๋ ๋ณ์์ ์ ๊ทผํ ์ ์๋ ๋ฒ์๋ฅผ ๋งํ๋ค. ์๋ณ์(๋ณ์)๋ฅผ ์ฐพ๊ธฐ์ํ ๊ท์น์ด๋ผ๊ณ ๋ ํ๋ค. ์๋ณ์์ ์ ํจ ๋ฒ์ ⇒ ๋ชจ๋ ์๋ณ์๋ ์์ ์ด ์ ์ธ๋ ์์น์ ์ํ์ฌ ๋ค๋ฅธ ์ฝ๋๊ฐ ์๋ณ์ ์์ ์ ์ฐธ์กฐํ ์ ์๋ ์ ํจ ๋ฒ์๊ฐ ๊ฒฐ์ ๋จ. var x = 'global'; f.. 2022. 11. 5. ์ด์ 1 ๋ค์