๋ฐ์ดํฐ ํ์ ์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ ์ ์ฒ์์ผ๋ก ๋ฑ์ฅํ๋ ์ค์ํ ๋ถ๋ถ์ ์ฐจ์ง ํฉ๋๋ค. ์ฒ์ ์ธ์ด๋ฅผ ์ ํ์ ๋ ๋ฌด์์ ์ธ์ฐ๊ณ ์ง๋๊ฐ๋ ๊ฐ๋ ์ด์์ต๋๋ค. ์ค์ํ๋ค๋ ์๊ฐ๋ณด๋จ ์ ๋ คํ๊ณ ํค๋ณด๋ ๋๋ฅด๋ ์๋ฆฌ๊ฐ ๊ณ์ ๋ค๋ฆด๋งํ ๊ธด ์ฝ๋๋ฅผ ์ง๊ณ ์ถ๋ค๋ ์๊ฐ์ ๋ง์๋ง ์์ ์ฑ ๊ฐ ๋ ๊ฐ์ถ๋ฏ ์ง๋๊ฐ๋ ํํธ ์์ต๋๋ค.
ํ์ง๋ง ์ ์ ์ผ๋ก์ ๋ฉด์ ์ ๋ณด๋ฉด ๋ณผ ์๋ก ๊ธฐ์ด๋ ๋์ฑ ์ค์ํด์ก๊ณ , ๋ฐ์ดํฐ ํ์ ์ ์ ๋ฐ๋ชฉ์ ์ก์์ต๋๋ค. ํ๋ค๋ฆฌ๋ ๊ธฐ์ด ์์ ์ฌ์๋๊ฐ์ ๋ถ๊ณผํ๋ ์คํฌ๋ค์ ๋ฌด๋์ง๊ณ ๋ถ์ ์ง ๋ค ์ด์ ์์ผ ์ค์์ฑ์ ๋๋ผ๋ฉฐ ๊ณต๋ถ๋ฅผ ์์ํ๋ ์๋กญ๊ฒ ๋๊ปด์ง๋๋ค.
๋ฐ์ดํฐ ํ์ ์ ์ ํ์ํ๊ณ ์ฒซ ๋ฒ์งธ๋ก ๋์ฌ ๋งํผ ์ค์ํ ๊ฐ๋ ์ผ๊น์? ์ ์ ์๋ฆฌ์ ๋น์ ํ์๋ฉด ๋ณถ์๋ฐฅ์ ๋ง๋ค๊ธฐ ์ํด์ ์ฐ์ ์์ ์ป์ด์ผ ํ๊ณ ์ํ๋ฅผ ๋ค๋ฌ๊ณ ๋ฌผ์ ๋ถ๋ฆฌ๋ ์ฌ๋ฃ ์์ง ์์ ์ด ํ์ํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ๋ฐ์๋ ์ผ์์์ ๋ฐ์ํ ๋ฌธ์ ๋ค์ ํ๋ก๊ทธ๋๋ฐ์ ํตํด ํด๊ฒฐํ๋ ์ง์ ์ผ๋ก ๋ฌธ์ ๋ค์ ์์์ฌ์ธ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์ํ๋ ์๋ฆฌ๋ก ๋ง๋ค ์ ์๊ฒ ๊ฐ๊ณตํ๋ ๊ณผ์ ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฃ๋ค์ ์ด๋ค๊ฒ๋ค์ด ์๊ณ ์ด๋ค ํน์ง์ ๊ฐ์ง๊ณ ์๋์ง ์ฐฌ์ฐฌํ ๋์๋ณด์ฌ ์๋ฏธํ๋ ์๊ฐ์ด ํ์ํฉ๋๋ค.
๋ชฉํ : ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์ดํด๋ณด๊ณ ๊ธฐ๋ณธํ ํ์ ๊ณผ ์ฐธ์กฐํ ํ์ ์ด ์๋ก ๋ค๋ฅด๊ฒ ๋์ํ๋ ์ด์ ๋ฅผ ์ดํดํ๊ณ ์ด๋ฅผ ์ ์ ํ ํ์ฉํ ์ ์๊ฒ ๋๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธํ(์์ํ) ํ์ ๊ณผ ์ฐธ์กฐํ ํ์ ์ ๋๋ค. ๊ธฐ๋ณธํ์๋ ์ซ์, ๋ฌธ์, ๋ถ๋ฆฌ์ธ, null, undefined, ์ฌ๋ณผ์ด ์์ต๋๋ค. ์ฐธ์กฐํ์ ๊ฐ์ฒด๊ฐ ์๊ณ , ๋ฐฐ์ด, ํจ์, ๋ ์ง, ์ ๊ทํํ์ ๋ฑ๊ณผ Map,Set ๋ฑ์ด ๊ฐ์ฒด์ ํ์ ๋ถ๋ฅ์ ์กด์ฌํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๊ธฐ์ค์ผ๋ก ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ ๊ตฌ๋ถํ๋ ๊ฑธ๊น์? ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ณธํ์ ํ ๋น์ด๋ ์ฐ์ฐ์ ๋ณต์ ๋๊ณ ์ฐธ์กฐํ์ ์ฐธ์กฐ๋๋ค๊ณ ์๋ ค์ ธ ์์ต๋๋ค. ๊ธฐ๋ณธํ์ ๋ถ๋ณ์ฑ์ ๋๋๋ค. ์ด๊ฒ์ ๋ ์ ์ดํดํ๊ธฐ ์ํด์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ์ ๋ํ ์ง์์ด ํ์ํ๊ณ , ๋์๊ฐ ์๋ณ์์ ๋ณ์์ ๊ฐ๋ ์ ๊ตฌ๋ถํ ์ ์์ด์ผ ํฉ๋๋ค.
์ปดํจํฐ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ 0 ๋๋ 1๋ก ๋ณํํ์ฌ ๊ธฐ์ตํฉ๋๋ค. ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์ ๋นํธ๋ผ๊ณ ํฉ๋๋ค. 8๋นํธ๋ 1๋ฐ์ดํธ๊ฐ ๋ฉ๋๋ค.
์๋ฐ, C ๋ฑ์ ์ ์ ํ์ ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ญ๋น๋ฅผ ์ต์ํํ๊ธฐ ์ํด ๋ฐ์ดํฐ ํ์ ๋ณ๋ก ํ ๋น ๋ฉ๋ชจ๋ฆฌ ์์ญ์ 2๋ฐ์ดํธ, 4๋ฐ์ดํธ ๋ฑ์ผ๋ก ๋๋์ด ์ ํด๋์์ต๋๋ค. ์ฌ์ฉ์ ์ ์ฅ์์๋ ๋ฐ์ดํฐ ํ์ ๋ง๋ค ์ผ์ผ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๊ฒ์ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ๋งค์ฐ ๋ถ์กฑํ๋ ์์ ์๋ ๋ถ๊ฐํผํ ์ ํ์ด์์ต๋๋ค.
ํํธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฑ์ฅ ๋น์ ๊ณผ๊ฑฐ๋ณด๋ค ์๋ฑํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ปค์ง ์ํฉ์์ ๋ฉ๋ชจ๋ฆฌ ์๋ฐ์ ์์ ๋ก์์ก์ต๋๋ค. ๋๋ํ๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ์ ์์์ต๋๋ค. ์ซ์์ ๊ฒฝ์ฐ ์ ์ํ์ธ์ง ๋ถ๋์์ํ์ธ์ง๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ 64๋นํธ, ์ฆ 8๋ฐ์ดํธ๋ฅผ ํ๋ณดํฉ๋๋ค. ๋๋ถ์ ๊ฐ๋ฐ์๊ฐ ํ๋ณํ์ ๊ฑฑ์ ํด์ผ ํ๋ ์ํฉ์ด ํจ์ฌ ๋ ๋ฐ์ํ๊ฒ ๋์ต๋๋ค.
๊ฐ ๋นํธ๋ ๊ณ ์ ํ ์๋ณ์๋ฅผ ์ง๋๋๋ค. ๋ฐ์ดํธ ์ญ์ ์์ํ๋ ๋นํธ์ ์๋ณ์๋ก ์์น๋ฅผ ํ์ ํ ์ ์์ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ฐ์ดํธ ๋จ์์ ์๋ณ์, ๋ ์ ํํ๊ฒ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ํตํด ์๋ก ๊ตฌ๋ถํ๊ณ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๋ณ์๋ ๋ณํ ์ ์๋ ์ ์ ๋๋ค. ์ปดํจํฐ ์ฉ์ด๋ก ์ธ ๋๋ ๋ณํ ์ ์๋ ๋ฌด์ธ๊ฐ๋ผ๋ ๋ช ์ฌ๋ก ํ์ฅ์์ผฐ์ต๋๋ค.
์ฌ๊ธฐ์ ๊ฐ๋ฆฌํค๋ ๋ฌด์ธ๊ฐ ๋ ๋ฐ์ดํฐ๋ฅผ ๋งํฉ๋๋ค. ์๋ณ์๋ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ด๋ฆ, ์ฆ ๋ณ์๋ช ์ ๋๋ค.
๋ณํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ ๋ค. ๊ฒฐ๊ตญ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๊ฐ ๋ด๊ธธ ์ ์๋ ๊ณต๊ฐ ๋๋ ๊ทธ๋ฆ์ด ๋ฉ๋๋ค.
var a;
var a;
a = 'abc';
var a = 'abc';
- Rexical Environment๋ Variable Envi ๊ฐ ์๋๋ฐ Variable Envrionment์ ์ญํ
- ์ค์ฝํ์ ๊ฐ๋
- ์ค์ฝํ ์ฒด์ธ์ Rexical Environment์ ์ฎ์ด์ ์ค๋ช
- Rexical Environment์์ ์ด๋ค ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์คํ์ปจํ ์คํธ์ ์ค์ฝํ๋ฅผ ์ฐธ์กฐํ๋์
- outer environment์ ๋ํด ์๊ณ ๊ณ์ ๊ฐ์
- ํธ์ด์คํ ์ด๋?
- var์ let, const๊ฐ ๋ค๋ฅด๊ฒ ์๋ํ๋๋ฐ ์ด๋ป๊ฒ ์๋ํ๋์
- var์ ์ค์ฝํ๋ ๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ๊ฐ ์๋๋๋ค. ์ด๊ฑธ es6์ด์ ๋ฌธ๋ฒ์์ ๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ๋ฅผ ๊ฐ์ง๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ธ ๊ฒ ์๋ค. ๋ฌด์์ธ์ง ์์๋์?(์ฆ์์คํ ํจ์)
- ์คํ์ปจํ ์คํธ ํ๋ฉด ์ด๋ฒคํธ ๋ฃจํ๊ฐ ํญ์ ๋์ค๋๋ฐ ์ด๋ฒคํธ ๋ฃจํ์ ๋ํด ์ฝ์คํ์ด๋ผ๋ ํค์๋๋ฅผ ์ฎ์ด ์ค๋ช ํด์ฃผ์ธ์
- ๋ง์ดํฌ๋ก ํ์คํฌ์ ๋งคํฌ๋ก ํ์คํฌ๋ฅผ ํ๋ก๋ฏธ์ค ๋ฑ ์ฎ์ด์ ์ค๋ช \
- ํ์ดํํจ์์์ this๋ ์ด๋ป๊ฒ ์๋ํ ๊น์.
- ๋ช ์์ ์ด๋ก this๋ฅผ ๋ฐ์ธ๋ฉํ๋ ๋ฐฉ๋ฒ์ ์ด๋ค๊ฒ?
- ํด๋ก์ ๋ก this๋ฅผ ์ด๋ป๊ฒ ๋ช ์์ ์ผ๋ก ๋ฐ์ธ๋ฉํ๋์?
- ํด๋ก์ ๋ ๋ญ๊น์
- ํด๋ก์ ๋ ์ด๋ค ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋์(๋ณ์ ์๋ ์ธ์ ๋ค๋ฅธ ์ฌ์ฉ๊ฒฝ์ฐ๋ ์์๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค์ฉ)
- 1๊ธ๊ฐ์ฒด๋ ๋ญ๊ฐ์?
- ์ฝ๋ฐฑํฌ์ es6 ์ด์ ์๋ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
- ํ๋ผ๋ฏธ์ค๋ ์ด๋ค ์์ผ๋ก ๊ตฌํ์ด ๋์ด์์ ์ง ์์ํด๋ณด์๊ฒ ์ด์?
์คํ์ปจํ ์คํธ์์ ์ฝ์คํ์ด๋ผ๋ ๊ฐ๋ ์ด ๋์ต๋๋ค. ์ฝ์คํ์ด ๋ญ๊ณ ์ด๋ค ์ญํ ์ ํ๋์ง์?
๋น๋๊ธฐํจ์๋ฅผ ์ฒ๋ฆฌํ๋ ์์๊ฐ ๋ง์ดํฌ๋ก ํ์คํฌ๋ ๋งคํฌ๋กํ์คํฌ๊ฐ ๋ค๋ฅธ๋ฐ ํค์๋๋ฅผ ๋ง์ํด์ฃผ์๋ฉด์ ์ค๋ช
์ฝ๋ฐฑํจ์์ ์ฝ๋ฐฑํฌ์์ ํ๋ผ๋ฏธ์ค ๋ด๋ถ๊ฐ ์ด๋ป๊ฒ ๋์ด์์ ์ง ์์ํด๋ณด์๊ฒ ์ด์?(while)
10/8 ๋ฐ์ดํฐ ํ์ ์์ ์ฐธ์กฐํ๊ณผ ๊ธฐ๋ณธํ ํ์ ์ ์ฐจ์ด์ ๋ํด์ ์ค๋ช ํด์ฃผ์๊ฒ ์ด์? ๊ธฐ๋ณธํ์ ๊ฐ์ ๋ณต์ฌํ๊ณ , ์ฐธ์กฐํ์ ์ฃผ์๊ฐ์ ๋ณต์ฌํ๋ค๋ ๋ง์ ํด์ํด์ฃผ์๊ฒ ์ด์? ์ฐธ์กฐํ ๋ฐ์ดํฐ๋ GC์์ ๊ฐ์ ์๊ฑฐํ ๋ ์ด๋จ๋ ์ฌ์ฉํ๋์ง? ํด๋ก์ ๋ ์๊ฑฐํ๋์? ์ฝ๋ฐฑํจ์๋ ๋ญ๊น์? ์ฝ๋ฐฑํจ์์ ์กฐ๊ฑด์ด ์ผ๊ธ ๊ฐ์ฒด์ฌ์ผ ํ๋๋ฐ ์ผ๊ธ ๊ฐ์ฒด์ ์กฐ๊ฑด์ด ๋ฌด์์ผ๊น์? ์คํ ์ปจํ์คํธ๊ฐ ๋ฌด์์ผ๊น์? ์ด๋ค ์ ๋ณด๋ค์ด ๋ด๊ฒจ์๋์ง ๋ง์ํด์ฃผ์๊ฒ ์ด์? this๋ ์์ฑ์ ํจ์์์ ์ด๋ป๊ฒ ์๋ํ๋์? ์ฝ๋ฐฑํจ์์์์ this๋์? ์ค์ฝํ ์ฒด์ธ์ ์ด๋ป๊ฒ ์๋ํ ๊น์? ์์กด๊ณผ ์ ๊ฑฐ๋ ์ด๋ ์์ ์์ ์ด๋ฃจ์ด์ง๊น์? ์คํ์ปจํ ์คํธ๋ ์ธ์ ์์ฑ๋๋์? ํจ์๊ฐ ํธ์ถ๋ ๋ ์คํ์ปจํ ์คํธ๊ฐ ์ด๋ป๊ฒ ์๋ํ ๊น์? ์ค์ฝํ ์ฒด์ธ์ ํ ๋ ์ด๋ป๊ฒ ์๋ํ ๊น์? ํ์ดํ ํจ์์์ this๋ ์ ์์ ์ ๊ฐ๋ฆฌํค์ง ์์๊น์? this ๋ฐ์ธ๋ฉ์ ๋ช ์์ ์ผ๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ด ์์๊น์?