λͺ¨λ μλ³μ(λ³μ μ΄λ¦, ν¨μ μ΄λ¦, ν΄λμ€ μ΄λ¦λ±(λ μμ μ΄ μ μΈλ μμΉμ μν΄ λ€λ₯Έ μ½λκ° μλ³μ μμ μ μ°Έμ‘°ν μ μλ μ ν¨ λ²μκ° κ²°μ λλ€. μ΄λ₯Ό μ€μ½νλΌκ³ νλ€. μ¦ μ€μ½νλ μλ³μκ° μ ν¨ν λ²μλ₯Ό λ§νλ€.
μ½λλ μ μκ³Ό μ§μμΌλ‘ ꡬλΆν μ μλ€. μ μμμ μ μΈλ λ³μλ μ μ μ€μ½νλ₯Ό κ°λ μ μ λ³μμ΄κ³ , μ§μμμ μ μΈλ λ³μλ μ§μ μ€μ½νλ₯Ό κ°λ μ§μ λ³μμ΄λ€.
μ€μ½νλ ν¨μμ μ€μ²©μ μν΄ κ³μΈ΅μ μΈ κ΅¬μ‘°λ₯Ό κ°λλ€. μ΄λ κ² μ€μ½νκ° κ³μΈ΅μ μΌλ‘ μ°κ²°λ κ²μ μ€μ½ν 체μΈμ΄λΌκ³ νλ€.
λ³μλ₯Ό μ°Έμ‘°ν λ μλ°μ€ν¬λ¦½νΈ μμ§μ μ€μ½ν 체μΈμ ν΅ν΄ λ³μλ₯Ό μ°Έμ‘°νλ μ½λμ μ€μ½νμμ μμ μ€μ½ν λ°©ν₯μΌλ‘ μ΄λνλ©° μ μΈλ λ³μλ₯Ό κ²μνλ€.
π§ λ μ컬 νκ²½(Lexical Environment)
μ€μ½ν 체μΈμ μ€ν 컨ν μ€νΈμ λ μ컬 νκ²½μ λ¨λ°©ν₯μΌλ‘ μ°κ²°ν κ²μ΄λ€. μ μ λ μ컬 νκ²½μ μ½λκ° λ‘λλλ©΄ 곧λ°λ‘ μμ±λκ³ ν¨μμ λ μ컬 νκ²½μ ν¨μκ° νΈμΆλλ©΄ 곧λ°λ‘ μμ±λλ€.
μλ°μ€ν¬λ¦½νΈ μμ§μ μ€μ½ν 체μΈμ λ°λΌ λ³μλ₯Ό μ°Έμ‘°νλ μ½λμ μ€μ½νμμ μμν΄μ μμ μ€μ½ν λ°©ν₯μΌλ‘ μ΄λνλ©° μ μΈλ λ³μλ₯Ό κ²μνλ€. μ λ νμ μ€μ½νλ‘ λ΄λ €κ°λ©΄μ μλ³μλ₯Ό κ²μνλ μΌμ μλ€. μ΄λ μμ μ€μ½νμμ μ ν¨ν λ³μλ νμ μ€μ½νμμ μμ λ‘κ² μ°Έμ‘°ν μ μμ§λ§ νμ μ€μ½νμμ μ ν¨ν λ³μλ₯Ό μμ μ€μ½νμμ μ°Έμ‘°ν μ μλ€λκ²μ μλ―Ένλ€.
ν¨μλ μλ³μ μ΄κΈ° λλ¬Έμ μ€μ½νλ₯Ό κ°λλ€. λ°λΌμ μ€μ½νλ μλ³μλ₯Ό κ²μνλ κ·μΉμΌλ‘ νννλκ²μ΄ μ ν©νλ€
μ§μ μ€μ½νλ μ½λ λΈλ‘μ΄ μλ ν¨μμ μν΄μλ§ μμ±λλ€. var ν€μλλ‘ μ μΈλ λ³μλ μ€λ‘μ§ ν¨μμ μ½λ λΈλ‘(ν¨μ λͺΈμ²΄) λ§μ μ§μ μ€μ½νλ‘ μΈμ νλ€.
var x = 1;
if (true) {
// var ν€μλλ‘ μ μΈλ λ³μλ ν¨μμ μ½λ λΈλ‘(ν¨μ λͺΈμ²΄)λ§μ μ§μ μ€μ½νλ‘ μΈμ νλ€.
// ν¨μ λ°μμ var ν€μλλ‘ μ μΈλ λ³μλ μ½λ λΈλ‘ λ΄μμ μ μΈλμλ€ ν μ§λΌλ λͺ¨λ μ μ λ³μλ€.
// λ°λΌμ xλ μ μ λ³μλ€. μ΄λ―Έ μ μΈλ μ μ λ³μ xκ° μμΌλ―λ‘ x λ³μλ μ€λ³΅ μ μΈλλ€.
// μ΄λ μλμΉ μκ² λ³μ κ°μ΄ λ³κ²½λλ λΆμμ©μ λ°μμν¨λ€.
var x = 10;
}
console.log(x); // 10
var i = 10;
// for λ¬Έμμ μ μΈν iλ μ μ λ³μλ€. μ΄λ―Έ μ μΈλ μ μ λ³μ iκ° μμΌλ―λ‘ μ€λ³΅ μ μΈλλ€.
for (var i = 0; i < 5; i++) {
console.log(i); // 0 1 2 3 4
}
// μλμΉ μκ² λ³μμ κ°μ΄ λ³κ²½λμλ€.
console.log(i); // 5
ν¨μλ₯Ό μ΄λμ μ μνλμ§μ λ°λΌ ν¨μμ μμ μ€μ½νλ₯Ό κ²°μ νλκ²μ λ μ컬 μ€μ½νλΌκ³ νλ€. μλ°μ€ν¬λ¦½νΈλ λ μ컬 μ€μ½νλ₯Ό λ°λ₯΄λ―λ‘ ν¨μλ₯Ό μ΄λμ νΈμΆνλμ§κ° μλλΌ ν¨μλ₯Ό μ΄λμ μ μνλμ§μ λ°λΌ μμ μ€μ½νλ₯Ό κ²°μ νλ€. ν¨μκ° νΈμΆλ μμΉλ μμ μ€μ½ν κ²°μ μ μ΄λ ν μν₯λ μ£Όμ§ μλλ€. μ¦ ν¨μμ μμ μ€μ½νλ μΈμ λ μμ μ΄ μ μλ μ€μ½νλ€. μ΄μ²λΌ ν¨μμ μμ μ€μ½νλ ν¨μ μ μκ° μ€νλ λ μ μ μΌλ‘ κ²°μ λλ€. ν¨μ μ μ(ν¨μ μ μΈλ¬Έ λλ ν¨μ ννμ)κ° μ€νλμ΄ μμ±λ ν¨μ κ°μ²΄λ μ΄λ κ² κ²°μ λ μμ μ€μ½νλ₯Ό κΈ°μ΅νλ€. ν¨μκ° νΈμΆλ λλ§λ€ ν¨μμ μμ μ€μ½νλ₯Ό μ°Έμ‘°ν νμκ° μκΈ° λλ¬Έμ΄λ€.