![[JavaScript] νΈμ΄μ€ν
(Hoisting)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDn5Ds%2FbtsBVzYNsP4%2FWaAY0i6klJwiaz5IpyuXw1%2Fimg.png)
π νΈμ΄μ€ν μ΄λ 무μμΈκ°μ?
νΈμ΄μ€ν μ΄λ μλ°μ€ν¬λ¦½νΈμμ λ³μλ ν¨μ μ μΈμ΄ κ·Έλ€μ΄ μν μ€μ½νμ μ΅μλ¨μΌλ‘ λμ΄μ¬λ €μ§λ κ²μ λ§ν΄μ.
λΉμ μ΄ ν μΉ΄νμ λ€μ΄κ°λ€κ³ μμν΄ λ³ΌκΉμ?
μΉ΄νμ λ©λ΄νμ λ²½μ κ±Έλ € μκ³ , λΉμ μ λ©λ΄λ₯Ό μ ννκΈ° μ μ λ©λ΄νμ λ³Ό μ μμ΄μ.
μ¬κΈ°μ λ©λ΄νμ΄ 'νΈμ΄μ€ν
'λ κ²κ³Ό κ°μμ.
μ¦, λ©λ΄ν(λ³μλ ν¨μ μ μΈ)μ μΉ΄ν(μ€μ½ν) μμμ μ΄λμλ λ³Ό μ μλλ‘ λ²½(μ΅μλ¨)μ κ±Έλ € μλ κ²κ³Ό κ°μμ.
π₯οΈ νΈμ΄μ€ν μ μμ
μλ°μ€ν¬λ¦½νΈμμ νΈμ΄μ€ν
μ λ³μμ ν¨μ μ μΈμ μ μ©λΌμ.
μλ μ½λλ₯Ό ν΅ν΄ νμΈν΄ λ³ΌκΉμ?
console.log(myVar); // μΆλ ₯: undefined
var myVar = 5;
console.log(myVar); // μΆλ ₯: 5
μ μ½λμμ var myVar = 5;
μ μΈμ΄ μ€ν¬λ¦½νΈμ μ΅μλ¨μΌλ‘ λμ΄μ¬λ €μ Έμ.
λ³μλ μ μΈλμμ§λ§, μμ§ κ°μ ν λΉλ°μ§ μμκΈ° λλ¬Έμ, 첫 λ²μ§Έ console.log(myVar);
λ undefined
λ₯Ό μΆλ ₯ν΄μ.
μ¬κΈ°μ μ΄ν΄ν΄μΌ ν μ€μν κ°λ μ var ν€μλλ‘ μ μΈλ λ³μμ νΈμ΄μ€ν λ°©μμ΄μμ.
μ΄λ₯Ό λ¨κ³λ³λ‘ μ€λͺ νλ©΄ μλμ κ°μμ.
1. λ³μ μ μΈκ³Ό νΈμ΄μ€ν :
- μλ°μ€ν¬λ¦½νΈλ μ½λ μ€ν μ μ λͺ¨λ
var
λ³μ μ μΈμ ν΄λΉ μ€μ½νμ μ΅μλ¨μΌλ‘ νΈμ΄μ€ν ν΄μ. - μ΄ κ³Όμ μμ λ³μλ, μ μΈμ νΈμ΄μ€ν λμ§λ§ ν λΉμ νΈμ΄μ€ν λμ§ μμμ.
- μ¦,
var myVar = 5;
μμvar myVar;
λΆλΆλ§ μ΅μλ¨μΌλ‘ μ¬λΌκ°μ.
2. 첫 λ²μ§Έ console.log μ€ν:
console.log(myVar);
κ° μ€νλ λ,myVar
λ μ΄λ―Έ νΈμ΄μ€ν μΌλ‘ μΈν΄ μ μΈλμμ§λ§, μμ§ κ°μ΄ ν λΉλμ§ μμμ΄μ.- λ°λΌμ,
myVar
μ κ°μundefined
μ΄μμ.
3. λ³μμ κ° ν λΉ:
- μ½λκ°
var myVar = 5;
μ λλ¬νλ©΄, μ΄μ myVar
μ5
κ° ν λΉλΌμ.
4. λ λ²μ§Έ console.log μ€ν:
- μ΄ μμ μμ
myVar
μλ5
κ° ν λΉλμμ΄μ. - λ°λΌμ
console.log(myVar);
λ5
λ₯Ό μΆλ ₯ν΄μ.
π€ ν¨μ νΈμ΄μ€ν
ν¨μ μ μΈλ νΈμ΄μ€ν λΌμ.
console.log(myFunction()); // μΆλ ₯: "Hello, World!"
function myFunction() {
return "Hello, World!";
}
μ΄ κ²½μ°, myFunction()
μ νΈμΆλκΈ° μ μ νΈμ΄μ€ν
λμ΄, μ½λμ μ΄λ μμΉμμλ νΈμΆν μ μμ΄μ.
π¨ μ£Όμν μ
let
κ³Ό const
λ‘ μ μΈλ λ³μλ νΈμ΄μ€ν
λμ§λ§, μ΄κΈ°νλμ§ μμ μνμμ μ κ·Όνλ €κ³ νλ©΄ μ€λ₯κ° λ°μν΄μ.
μ΄λ var
μμ μ€μν μ°¨μ΄μ μ΄μμ.
console.log(myLetVar); // μ€λ₯ λ°μ: Cannot access 'myLetVar' before initialization
let myLetVar = 3;
π κ²°λ‘
νΈμ΄μ€ν
μ μλ°μ€ν¬λ¦½νΈμμ λ³μμ ν¨μ μ μΈμ΄ μ€μ½νμ μ΅μλ¨μΌλ‘ λμ΄μ¬λ €μ§λ νμμ΄μμ.
μ΄ν΄νλ©΄ μ½λμ λμμ λ λͺ
νν νμ
νκ³ μμμΉ λͺ»ν μ€λ₯λ₯Ό λ°©μ§ν μ μμ΄μ.
π μΆκ° μ 보
μλ°μ€ν¬λ¦½νΈ νΈμ΄μ€ν μ λν λ κΉμ μ΄ν΄λ₯Ό μνμ λ€λ©΄, MDN Web Docsμμ μμΈν μ 보λ₯Ό μ°Ύμλ³Ό μ μμ΄μ.
'Language > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] async/await (0) | 2023.12.15 |
---|---|
[JavaScript] μ½λ°± ν¨μ(Callback Function) (0) | 2023.12.14 |
[JavaScript] μ°μ°μ (0) | 2023.12.14 |
[JavaScript] λ°μ΄ν° ν (0) | 2023.12.13 |
[JavaScript] λ³μ (0) | 2023.12.13 |
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!