ํธ์ด์คํ ์ด๋?
: ์ฝ๋๊ฐ ์คํ์ด ๋๊ธฐ์ ์ '์๋ฐ์คํฌ๋ฆฝํธ ์์ง'์ด ์ ์ธ๋ ๋ณ์์ ํจ์๋ฅผ ๊ฐ์ ธ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ์ต์ ํด๋ก๋๋ค.
๊ทธ๋์ ํจ์ ์ ์๋ฌธ๋ณด๋จ ํธ์ถ๋ฌธ์ด ๋จผ์ ๋์๋ ํจ์ ์ ์๋ฌธ์ ๋์ด์ฌ๋ ค ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ๋ฐ ํจ์ ์ ์๋ ํจ์ ํธ์ถ์ ํธ์ด์คํ (hoisting) ๊ธฐ์ ์ ์ง์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ต๋ช ํจ์ ์ ์ธ ์ฐธ์กฐ ๋ฐฉ์์ ํธ์ด์คํ ์ ์ง์ํ์ง ์์ต๋๋ค.
๋ํ ์ค์ง '์ ์ธ'๋ง์ด ํธ์ด์คํ ๋์์ด ๋ฉ๋๋ค.
1. ๋ณ์๋ฅผ ๋จผ์ ์ฌ์ฉํ๊ณ
2. ์ ์ธ ๋ฐ ์ด๊ธฐํ(๊ธฐ๋ณธ๊ฐ-undefined)
โถ์ด๊ธฐํ๋ฅผ ์ ์ธํ ์ ์ธ๋ง ํธ์ด์คํ ํจ.
('undefined' : ๋ณ์์ ๊ฐ์ด ๋ฑ๋ก(์ด๊ธฐํ)๋๊ธฐ์ ์ ๊ธฐ๋ณธ๊ฐ)์ด๋ค.
let, const๋ก ์ ์ธํ ๋ณ์๋ ํธ์ด์คํ ๋์์ด์ง๋ง
var์ ๋ฌ๋ฆฌ ํธ์ด์คํ ์ 'undefined'์ผ๋ก ๋ณ์๋ฅผ
์ด๊ธฐํ ํ์ง ์์ต๋๋ค.
โถ'let'์ ๋ณ์ ์ด๊ธฐํ ์ด์ ์ฌ์ฉ(ํธ์ถ)์ ์์ธ๊ฐ ๋ฐ์
โป TDZ (Temperal Dead Zone) : ๋ณ์๊ฐ ์ด๊ธฐํ ๋๊ธฐ ์ ๊น์ง์ Zone์ ๋งํฉ๋๋ค. ( ํด๋น ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ )
var์ let์ ์ฐจ์ด
![]() var๋ ํจ์(function)๋ง ์ง์ญ๋ณ์๋ก ํธ์ด์คํ ๋๊ณ ๋๋จธ์ง(for, if)๋ ๋ค ์ ์ญ๋ณ์๋ก ์ฌ๋ ค๋ฒ๋ฆผ |
![]() |
![]() |
![]() |
โ var์ ๊ฒฝ์ฐ ์ ์ธ ์ ์ ์ ๊ทผํ ์ undefined / let, const๋ 'ReferenceError' ๋ฐ์
'์ฝ๋ฉ ์ฉ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์น ์๋ฒ/์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ (WEB / WAS) (0) | 2022.01.20 |
---|---|
์คํฌ๋ฆฝํธ ์ธ์ด(Script Language), ์ธํฐํ๋ฆฌํฐ(Interpreter) (0) | 2022.01.18 |
API๋? ๊ฐ๋ , ํน์ง, ๋ฐฉ์ (0) | 2022.01.11 |
JSON, AJAX ๊ฐ๋ , ํน์ง, ๋์์๋ฆฌ (0) | 2022.01.05 |
์ด์์ฒด์ (OS) (0) | 2022.01.05 |