Frontend/JavaScript
[JavaScript] μ€μ½ν(Scope)λ 무μμΈκ°?
_μ±νΈ_
2022. 9. 5. 15:24
728x90
λ°μν
μ€μ½ν(Scope) β
1οΈβ£ λ³μλ₯Ό μ°Έμ‘°ν μ μλ μ ν¨ λ²μ
2οΈβ£ μλ³μ(λ³μ, ν¨μ, ν΄λμ€ μ΄λ¦) μ κ·Ό κ·μΉμ λ°λ₯Έ μ ν¨ λ²μ
λ²μ(μ€μ½ν)λ μ€κ΄νΈ(λΈλ‘) λλ ν¨μμ μν΄ λλ μ§λ€.
μ€μ½νμ μ£Όμ κ·μΉ β
π κ·μΉ 1. λΈλ μμ λ³μλ λΈλ μμμλ§ μ ν¨νλ€.
- λ°κΉ₯μͺ½ μ€μ½νμμ μ μΈν μλ³μλ μμͺ½ μ€μ½νμμ μ¬μ© κ°λ₯
- λ°λ©΄, μμͺ½μμ μ μΈν μλ³μλ λ°κΉ₯μͺ½ μ€μ½νμμλ μ¬μ©ν μ β
- λΈλ λ΄λΆμμλ§ μ‘΄μ¬νκ³ , λΈλμ΄ λλλ©΄ κ°λΉμ§ 컬λ ν°(GC)μ μν΄ μλμΌλ‘ μλ©Έλλ€.
const a = 1;
{
const b = 2;
console.log(a);
}
console.log(b); // μ€λ₯ λ°μ(app crashed)
π κ·μΉ 2. μ μ μ€μ½ν vs μ§μ μ€μ½ν
- κ°μ₯ λ°κΉ₯μͺ½μ μ€μ½νλ₯Ό μ μ μ€μ½ν(Global Scope)λΌκ³ λΆλ₯Έλ€.
- μ μμ΄ μλ λ€λ₯Έ μ€μ½νλ μ λΆ μ§μ μ€μ½ν(Local Scope)λΌκ³ λΆλ₯Έλ€.
const a = 1; // μ μ μ€μ½ν(Global Scope)
{
const b = 2; // μ§μ μ€μ½ν(Local Scope)
console.log(a);
{
const c = 3; // μ§μ μ€μ½ν(Local Scope)
console.log(b);
}
}
π κ·μΉ 3. μ§μ λ³μλ μ μ λ³μλ³΄λ€ μ°μ μμκ° λ λλ€.
- μ μ μ€μ½νμμ μ μΈν λ³μλ μ μ λ³μμ΄λ€.
- μ§μ μ€μ½νμμ μ μΈν λ³μλ μ§μ λ³μμ΄λ€.
const a = 1;
{
const a = 2;
console.log(a);
}
// μΆλ ₯ κ²°κ³Ό: 2
μ€μ½νμ μ’ λ₯ β
μ€μ½νμ μ’ λ₯λ‘λ λΈλ μ€μ½νμ ν¨μ μ€μ½νκ° μλ€.
- λΈλ μΈλΆμμλ λΈλ λ΄λΆμ λ³μλ₯Ό μ°Έμ‘°ν μ β
- ν¨μ μΈλΆμμλ ν¨μ λ΄λΆμ λ³μλ₯Ό μ°Έμ‘°ν μ β
- ν¨μ μΈλΆμμλ ν¨μμ 맀κ°λ³μλ₯Ό μ°Έμ‘°ν μ β
π‘ κΉ¨λ¬μ μ
λ³μλ μ΅λν νμν κ³³μμ μ μν΄μΌ νλ€.
- μ΄λ¦ μΆ©λ λ°©μ§
- λ©λͺ¨λ¦¬ μ μ½