JSμμ μμ±λ 'λ³μ' λλ 'ν¨μ'λ λͺ¨λ μ ν¨ λ²μλ₯Ό κ°κ²λ¨
μ ν¨ λ²μβ
π λ³μ & ν¨μκ° μν₯μ λ―ΈμΉλ λ²μ, μμ΄λ‘ 'μ€μ½ν'
π€© μ€μ½νλ JS λΏλ§ μλλΌ λͺ¨λ νλ‘κ·Έλλ° μΈμ΄μμ μ€μν κ°λ
β JSλ‘ νλ‘κ·Έλλ° νκΈ° μν΄μ μ€μ½νμ λν κ°λ νμ€ν μ΄ν΄νκ³ μμ΄μΌ ν¨
let globalNum = 100;
function testFunc() {
console.log(globalNum);
}
testFunc(); // 100
console.log(globalNum); // 100

let globalNum = 100;
function testFunc() {
let innerNum = 50;
console.log(globalNum); // 100
console.log(innerNum); // 50
}
testFunc(); // 100 50
console.log(globalNum); // 100
console.log(innerNum); // μλ¬



let global = 'λλ μ μ λ³μμ
λλ€';
function outerFunction() {
let outer = 'λλ μΈλΆ ν¨μμ λ³μμ
λλ€';
function innerFunction() {
let inner = 'λλ λ΄λΆ ν¨μμ λ³μμ
λλ€';
console.log(global); // β
'λλ μ μ λ³μμ
λλ€'
console.log(outer); // β
ν΄λ‘μ λ‘ μ κ·Ό β 'λλ μΈλΆ ν¨μμ λ³μμ
λλ€'
console.log(inner); // β
'λλ λ΄λΆ ν¨μμ λ³μμ
λλ€'
}
innerFunction(); // β
μμ 3κ° μ½μ μ€ν
console.log(global); // β
'λλ μ μ λ³μμ
λλ€'
console.log(outer); // β
'λλ μΈλΆ ν¨μμ λ³μμ
λλ€'
console.log(inner); // β ReferenceError: inner is not defined
}
outerFunction();

π₯ ν΅μ¬ ν¬μΈνΈ μμ½
- μ μ λ³μ
globalβ‘μ΄λμλ μ κ·Ό κ°λ₯βouterβ‘outerFunctionμμμλ§ μ κ·Ό κ°λ₯βinnerβ‘innerFunctionμμμλ§ μ κ·Ό κ°λ₯β
π¨outerFunctionμμconsole.log(inner)νλ©΄ μλ¬λ κ²π¨
function print() {
// νΉμ μ½λλ₯Ό λ°λ³΅μ μΌλ‘ μ€νν μ μλ λ°λ³΅λ¬Έ
// (μ΄κΈ°νμ 쑰건μ μ¦κ°μ)
for(let i=0; i<10; i++) {
// μ½λλ₯Ό ν΄λΉ 쑰건μμ λ§μ‘±ν λκΉμ§ λ°λ³΅μ μΌλ‘ μν
console.log(i); // 0~9κΉμ§
}
console.log(i); // μ€λ₯ λ°μ
}
print(); // ν¨μ νΈμΆ



μ΄ λμ μ°¨μ΄μ μ
letν€μλλ‘ μ μΈλ λ³μλ 'λΈλ‘ μ€μ½ν',
varν€μλλ‘ μ μΈλ λ³μλ 'ν¨μ μ€μ½ν'λ₯Ό κ°μ
β
letμ¬ν λΉ λΆκ°β
β
varμ¬ν λΉ κ°λ₯β
π κ°μ μ΄λ¦μ λ³μ μ¬λ¬ λ² μ¬μ μΈ κ°λ₯
κΈ°μ‘΄μ μ μΈλ λ³μλ 무μλλ κ²μ λ³Ό μ μμ
JS μ΄κΈ° λ²μ μ λμ λ λ³μ μ μΈ λ°©μμΌλ‘
μ€λλ λ³μ μ μΈ ν€μλ( μ μ¬μ©νμ§ μμβ )
'ν¨μ μ€μ½ν', ν¨μ λ΄λΆ μ΄λμλ μ κ·Ό κ°λ₯
βν¨μ μΈλΆμμ μ κ·Ό λΆκ°β
β½let&const
πJS ES6λ²μ μ λμ λ μ μΈ λ°©μ
π§± 'λΈλ‘ μ€μ½ν' μ§μνλ©° { μ½λ λΈλ‘ }μ λ΄λΆμμλ§ μ ν¨
π§±'λΈλ‘ μ€μ½ν'β‘λΈλ‘ λ΄λΆμμ κ°μ μ΄λ¦μ λ³μ μ¬μ μΈ μ μλ¬ λ°μπ¨
π μ½λμ μ λ’°μ± & μμΈ‘ κ°λ₯μ± λμΈλ€λ νΉμ§ ‴
varλ‘ μ μΈλ λ³μκ°letμΌλ‘ μ μΈλ λ³μλ³΄λ€ μ μ°νλ€κ³ μκ°ν μ μμ§λ§varλ‘ λ³μ μ μΈ μ νΉμ λ³μκ° μ΄λ―Έ μ μΈλμ΄ μλμ§ νλ¨π ββοΈ
μ΄λμμ μ΄λ»κ² μ¬μ©λκ³ μλμ§ νμ μ΄λ ΅π₯΄
π«λ¨μ : νλ‘κ·Έλ¨ μμ μ€λ₯ λ°μμν¬ μ μκ²λ¨π«
var:letκ³Ό λ€λ₯΄κ² λ³μ μ€λ³΅ν΄μ μ μΈν μ μλ μ΄μ
π 'ν¨μ μ€μ½ν' κ°μ§λ©° 'νΈμ΄μ€ν ' μ΄λΌλ νΉμ± κ°κΈ° λλ¬Έπ£