HOISTING
From ๋ชจ๊ฐ์ฝ...
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ interpreter language and compile language๋ก ๋๋์ด์ง.
JavaScript๋ interpreter language์ด๊ธฐ์, ์์์๋ถํฐ ํ ์ค์ฉ ์ฝ๊ฒ ๋จ(๋ฐํ์). ๊ทธ๋ฆฌ๊ณ , ๋ฐํ์ ์ด์ ์ ๋ฌธ์๋ฅผ ํ ๋ฒ ์ฝ์ด์ ์ ์ธ๋ฌธ์ด ์์ผ๋ฉด ๊ณต๊ฐ์ ๋จผ์ ๋ง๋ค์ด ์ค.
์ ์ธ๋ฌธ์ ์์ผ๋ก ๋์ด์ ํธ์ด์คํ ํ๋ ๊ฒ์ lexical environment์
์๋์ฐ ๊ฐ์ฒด์ ์ ์ญ๋ณ์๊ฐ ์ ์ฅ์ด ๋๊ณ , ๋จผ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ง๋ค์ด ์ง. ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ง๋ค๊ณ , ํ ๋น์ด ๋นํ์ ๋ ์ ์ฅ์ด ๋จ.
ํ ๋น๋ฌธ์ ๋ง๋์ผ๋ง ์ฐ๋ณ์ด ์์ฑ๋๋ฉฐ ์ฐ๋ณ์ ๊ฐ์ด ํ๊ฐ๊ฐ ๋๊ณ , ์ค๋ฅธ์ชฝ์์ ํ๊ฐํด์ ์ผ์ชฝ์ผ๋ก ๋ฃ์.
์ ์ธ๋ฌธ์ ๋ฐํ์์ด์ ์ ์ ์ธ๋ ๋ชจ๋ ๊ฒ์ ์์ชฝ์์ ์ ์ธ๋๋ ํธ์ด์คํ ์ด ์ผ์ด๋จ.
ํํ์์ ํ ๋น๋ฌธ์ด๊ธฐ ๋๋ฌธ์ ๋ฐํ์์ ์์ฑ์ด ๋๋ฉฐ ํธ์ด์คํ ์ด ์์ผ์ด๋๋๊น ์ฐ๊ธฐ ๋ ๋์
๋ณ์์ ๊ฐ์ด ๋ค์ด๊ฐ๋ ๊ฑฐ์์ ํจ์๊ฐ ๋ณ์์ ๋ค์ด๊ฐ๋ ๊ฒ๋ ํ ๋น์ด๊ธฐ์ ๋ฐํ์์ ์๊น. ์๋ฅผ ๋ค์ด, const a= function()
์์์ ๋ง๊ฒ ์ ์ด๋ผ! ๋ฐ์ ํ ๋นํ ๊ฒ์ ์์์ ์ฐ์ง ๋ง๋ผ. ํธ์ด์คํ ์ ์ ์ฉํ์ง ๋ง์.
more details:
joshua1988.github.io/web-development/javascript/function-expressions-vs-declarations/