
π JavaScript μ€μ½ν (scope)
μ½λ©μ νλ€ λ³΄λ©΄, "μ΄ λ³μλ μ¬κΈ°μλ λλλ° μ μ κΈ°μλ μ λμ§?" κ°μ μν©μ μ’ μ’ λ§λλ€.
μ΄λ° νΌλμ μ μ²΄κ° λ°λ‘ μ€μ½ν(scope, λ³μμ μ ν¨ λ²μ)λ€.
μ€μ½νλ λ³μμ ν¨μκ° μ κ·Ό κ°λ₯ν λ²μλ₯Ό μλ―Ένλλ°,
μ½κ² λ§νμλ©΄, λ³μλ₯Ό μ μΈνμ λ κ·Έ λ³μκ° μ΄μμλ μμμ΄λΌκ³ μ΄ν΄νλ©΄ λλ€.
π₯ μ μ μ€μ½ν (Golbal Scope)
μ μ μ€μ½νλ λ§ κ·Έλλ‘ νλ‘κ·Έλ¨ μ 체 μμμμ μ κ·Ό κ°λ₯ν λ³μμ΄λ€.
μ΄λμλ λΆλ¬ μΈ μ μμΌλκΉ νΈνκΈ΄ νκ² μ§λ§,
λ무 λ§μ΄ μ°λ©΄ μΆ©λμ΄λ μκΈ°μΉ λͺ»ν λ²κ·Έλ₯Ό λ§λ€ μ μμΌλ νμ μ£Όμν΄μΌ νλ€.
let a = 1; //μ μ μ€μ½ν
function funcA() {
console.log(a); // ν¨μ μμμλ μ κ·Ό κ°λ₯
}
funcA(); // 1
console.log(a); // 1 (ν¨μ μΈλΆμμλ λΉμ°ν νΈμΆ κ°λ₯)
π§ μ§μ μ€μ½ν (Local Scope)
μ§μ μ€μ½νλ νΉμ μμ μμμλ§ μ κ·Ό κ°λ₯ν λ³μμ΄λ€.
λ°λΌμ ν΄λΉ μμμ΄ λλλ©΄ λ³μλ μ¬λΌμ§κ³ , λμ΄μ μ κ·Όν μ μκ² λλ€.
function funcB() {
let b = 2; // μ§μ μ€μ½ν
console.log(b); // 2
}
funcB();
console.log(b); // β ReferenceError: b is not defined
bλΌλ λ³μλ funcB ν¨μ μμμλ§ μ ν¨νκΈ° λλ¬Έμ
ν¨μ λ°μμ μ κ·Έλλ €κ³ νλ©΄ μλ¬κ° λ°μνλ€.
π¨ λΈλ‘ μ€μ½ν (Block Scope)
μλ°μ€ν¬λ¦½νΈμμ letκ³Ό constλ‘ μ μΈν λ³μλ λΈλ‘ { } μμμλ§ μ ν¨νλ€.
if (true) {
let c = 1;
console.log(c); // 1
}
console.log(c); // β ReferenceError: c is not defined
μ΄μ²λΌ λ³μ cλ if λΈλ‘ μμμλ§ μΈ μ μκ³ , λΈλ‘μ λ²μ΄λλ μκ° μ¬λΌμ§κ² λλ€.
π μ°Έκ³
varλ λΈλ‘ μ€μ½νκ° μλλΌ ν¨μ μ€μ½νλ§ μ§μνκΈ° λλ¬Έμ
μ΄λ° μν©μμλ μ κ·Όμ΄ κ°λ₯νλ€κ³ νλ€.
π© ν¨μ μμ ν¨μ (μ€μ²© ν¨μ μ€μ½ν)
ν¨μ μμ λ λ€λ₯Έ ν¨μλ₯Ό μ μνλ©΄, μμͺ½ ν¨μλ λ°κΉ₯μμ νΈμΆν μ μλ€.
function funcA() {
function funcB() {
console.log("hello");
}
}
// λ°κΉ₯μμ funcBλ₯Ό μ€ννλ €κ³ νλ©΄
funcB(); // β ReferenceError: funcB is not defined
μ΄μ²λΌ funcBλ μ€μ§ funcA μμλ§ μ‘΄μ¬νλ ν¨μμ΄κΈ° λλ¬Έμ μΈλΆμμλ μ ν μ κ·Όν μ μλ€.
(μ΄λ° ꡬ쑰 λλΆμ λΆνμνκ² λ°κΉ₯μμ μ κ·Όνμ§ λͺ»νκ² λ§λ μΊ‘μν ν¨κ³Όλ₯Ό μ»μ μ μλ€.)
π κ²°λ‘
μ€μ½νμ λν΄ μ 리νλ©΄μ λλ 건, λ³μλ₯Ό μ΄λμ μ μΈνλλμ λ°λΌ μ κ·Ό κ°λ₯ μ¬λΆκ° μμ ν λ¬λΌμ§λ€λ μ μ΄μλ€.
μ μ λ³μλ₯Ό μ°λ©΄ νΈν κ² κ°μ§λ§, μ½λκ° μ»€μ§μλ‘ μΆ©λ μνμ΄ ν¬κΈ° λλ¬Έμ
κ°λ₯ν ν μ§μ μ€μ½ν μμμ λ³μλ₯Ό κ΄λ¦¬νλ μ΅κ΄μ λ€μ΄λκ² μ’μ κ² κ°λ€.
(μ€μ λ‘ .. λͺ¨λ λ³μλ₯Ό μ μ λ³μλ‘ μ μΈνλ λΆμ λ΅ μ μ΄ μμλλ° .. λλ§ νλ©΄ μ¬κΈ°μ κΈ°μ μλ¬κ° λμ λ무 νλ€μλ€ .........)
μμΌλ‘λ "μ΄ λ³μκ° μ΄λκΉμ§ μ΄μμμ΄μΌ νλκ°?"λ₯Ό λ¨Όμ κ³ λ―Όνκ³ ,
κΌ νμν μ΅μ λ²μ μμμ λ³μλ₯Ό μ μΈνλ μ΅κ΄μ λ€μ¬μΌκ² λ€. π
'π»κ³΅λΆ κΈ°λ‘ > π 리μ‘νΈ κΈ°μ΄ μ€ν°λ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript ν΄λ‘μ (Closuer) (1) | 2025.09.23 |
|---|---|
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript μ€μ½ν μ²΄μΈ (Scope Chain) (0) | 2025.09.23 |
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript μ½λ°± ν¨μ (0) | 2025.09.21 |
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScriptμ μμ±μ ν¨μ λμ κ³Όμ (2) | 2025.09.20 |
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript ν¨μ μ¬ν (0) | 2025.09.20 |