| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- textshadow
- ν°νΈμ¨μ΄νΈ
- μ£Όμ
- texttransform
- textdecoration
- ν₯μ€μ½λ
- μ λλ²μ μ λ ν°
- νμ μ λ ν°
- borderspacing
- liststyleposition
- gtammertable
- liststyleimage
- inlineblock
- ν΄λμ€μ λ ν°
- selectorslevel4
- κ·Έλ£Ήμ λ ν°
- ꡬκΈν°νΈ
- μμ΄λμ λ ν°
- captionside
- bordercollapse
- νΌνκ·Έ
- λΉνκ·Έ
- CDN
- fontweight
- formtag
- borderstyle
- λͺ¨λμΉν°νΈ
- μΆμ½
- liststyletype
- wordspacing
- Today
- Total
η‘μ
Variable Scope (λ³μ μ€μ½ν)μ Hoisting (νΈμ΄μ€ν ) λ³Έλ¬Έ
π¨ Variable Scope
λ³μμ μ κ·Όν μ μλ λ²μλ₯Ό μλ―Ένλ€. λ³μλ μ μΈλ μμΉμ λ°λΌ μ¬μ©ν μ μλ λ²μκ° κ²°μ λλ€.
βΌ Global Scope (μ μ μ€μ½ν)
ν¨μλ λΈλ‘({}) λ°μμ μ μΈν λ³μ. νλ‘κ·Έλ¨ μ΄λμμλ μ κ·Όν μ μμΌλ©°, λͺ¨λ ν¨μμ λΈλ‘ λ΄λΆμμλ μ κ·Όν μ μλ€.
let globalVar = "μ μ λ³μ";
function test() { console.log(globalVar); // μ κ·Ό κ°λ₯
}
test(); console.log(globalVar); // μ κ·Ό κ°λ₯
β λ¨, κ°μ μ΄λ¦μ μ§μ λ³μκ° μμΌλ©΄ μ§μ λ³μκ° μ°μ νλ€. β
let name = "μ μ";
function test() {
let name = "μ§μ";
console.log(name); // μ§μ
}
βΌ Local Scope (μ§μ μ€μ½ν)
νΉμ λ²μ μμμλ§ μ¬μ©ν μ μλ λ³μ.
1οΈβ£ Function Scope (ν¨μ μ€μ½ν)
function test() {
let functionVar = "ν¨μ λ³μ";
console.log(functionVar); // μ κ·Ό κ°λ₯
}
test();
// console.log(functionVar); // μλ¬
- ν¨μ λ΄λΆμμ μ μΈν λ³μλ ν΄λΉ ν¨μ μμμλ§ μ¬μ©ν μ μλ€.
2οΈβ£ Block Scope (λΈλ‘ μ€μ½ν)
if (true) {
let blockVar = "λΈλ‘ λ³μ";
console.log(blockVar); // μ κ·Ό κ°λ₯
}
// console.log(blockVar); // μλ¬
- if, for, while λ±μ {} λΈλ‘ μμμ let λλ constλ‘ μ μΈν λ³μλ ν΄λΉ λΈλ‘ μμμλ§ μ¬μ©ν μ μλ€.
βΌ μ€μ½νμ μ κ·Ό λ²μ
1οΈβ£ μ μ λ³μλ μ΄λμλ μ κ·Όν μ μλ€.
2οΈβ£ ν¨μ λ΄λΆμμλ μ μ λ³μμ μμ μ μ§μ λ³μμ μ κ·Όν μ μλ€.
3οΈβ£ λΈλ‘ λ΄λΆμμλ μ μ λ³μ, ν¨μ λ³μ, κ·Έλ¦¬κ³ ν΄λΉ λΈλ‘μμ μ μΈν λ³μμ μ κ·Όν μ μλ€.
4οΈβ£ λΈλ‘ λ°μμλ λΈλ‘ λ³μμ μ κ·Όν μ μλ€.
βοΈ μ€μ μμ μ½λβοΈ
let globalVar = "μ μ λ³μ";
function scopeTest() {
let functionVar = "ν¨μ λ³μ";
if (true) {
let blockVar = "λΈλ‘ λ³μ";
console.log(globalVar); // μ κ·Ό κ°λ₯
console.log(functionVar); // μ κ·Ό κ°λ₯
console.log(blockVar); // μ κ·Ό κ°λ₯
}
// console.log(blockVar); // μλ¬! λΈλ‘ λ°μμλ μ κ·Ό λΆκ°
}
scopeTest();
π¨ Hoisting
μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μ½λλ₯Ό μ€ννκΈ° μ μ λ³μμ ν¨μ μ μΈμ λ¨Όμ μ²λ¦¬νλ λμμ μλ―Ένλ€.
μ€μ λ‘ μ½λκ° μ΄λνλ κ²μ μλλ©°, μ μΈμ΄ μ½λμ μ΅μλ¨μΌλ‘ λμ΄μ¬λ €μ§ κ²μ²λΌ λμνλ€.
βΌ var λ³μμ νΈμ΄μ€ν
console.log(name); // undefined
var name = "μ² μ";
- varλ‘ μ μΈν λ³μλ μ μΈ μ μ μ°Έμ‘°ν μ μμ§λ§, κ°μ μμ§ ν λΉλμ§ μμκΈ° λλ¬Έμ undefinedκ° μΆλ ₯λλ€.
βΌ let, const λ³μμ νΈμ΄μ€ν
// console.log(age); // ReferenceError
let age = 25;
- letκ³Ό constλ μ μΈ μ체λ νΈμ΄μ€ν λμ§λ§, μ΄κΈ°νλκΈ° μ κΉμ§λ TDZ(Temporal Dead Zone, μΌμμ μ¬κ°μ§λ)βμ μ‘΄μ¬νκΈ° λλ¬Έμ μ κ·Ό μ ReferenceErrorκ° λ°μνλ€.
π POINT π
βοΈ μ§μ λ³μλ μμ μ΄ μ μΈλ μ€μ½ν μμμλ§ μ¬μ©ν μ μλ€. βοΈ
βοΈ λ³μλ μ¬μ©νκΈ° μ μ μ μΈνλ μ΅κ΄μ λ€μ΄λ κ²μ΄ μ’λ€. βοΈ
βοΈ νλ μλ°μ€ν¬λ¦½νΈμμλ 보μκ³Ό μ μ§λ³΄μλ₯Ό μν΄ var λμ letκ³Ό constλ₯Ό μ¬μ©νλ€. βοΈ
π λ³μ μ μΈ λ°©μ λΉκ΅ π
| κ΅¬λΆ | var | let | const |
| μ€μ½ν | ν¨μ μ€μ½ν | λΈλ‘ μ€μ½ν | λΈλ‘ μ€μ½ν |
| μ¬μ μΈ | κ°λ₯ | λΆκ°λ₯ | λΆκ°λ₯ |
| μ¬ν λΉ | κ°λ₯ | κ°λ₯ | λΆκ°λ₯ (μμ) |
| νΈμ΄μ€ν | O (undefined) | O (TDZ) | O (TDZ) |
| λΈλ‘ μ€μ½ν | X | O | O |
βοΈ μ€μ μμ μ½λβοΈ
// 1. varμ κ²½μ°
console.log(name); // κ²°κ³Ό: undefined (μλ¬λ μ λμ§λ§ κ°μ΄ μμ)
var name = "μ² μ";
// 2. letμ κ²½μ°
// console.log(age); // κ²°κ³Ό: ReferenceError (TDZ λλ¬Έμ μλ¬ λ°μ)
let age = 25;
// 3. ν¨μμ κ²½μ°
sayHi(); // κ²°κ³Ό: "μλ
!" (ν¨μ μ μΈλ¬Έμ μ μ²΄κ° νΈμ΄μ€ν
λ¨)
function sayHi() {
console.log("μλ
!");
}
'<script>' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| Parameter (νλΌλ―Έν°)μ Argument (μκ·λ¨ΌνΈ) (0) | 2026.06.02 |
|---|---|
| var, let, const λ³μ μ μΈ λ°©μ (0) | 2026.06.02 |
| Function (ν¨μ) (0) | 2026.06.02 |
| Undefinedκ³Ό null (0) | 2026.05.28 |
| breakμ continue (0) | 2026.05.28 |
