JavaScript / var, let, const μ¬μ μΈ, μ¬ν λΉ μ°¨μ΄
1. λ³μμ μ μΈ, ν λΉ, λ²μλ?
λ³μλ₯Ό μ¬μ©ν λμ
μ μΈκ³Ό ν λΉμ΄λΌλ μ©μ΄κ° μλλ°,
λ³μ λ§λλ κ²μ μ μΈ,
λ³μμ λ λ£λ κ²μ ν λΉμ΄λΌκ³ ν©λλ€.
var μ΄λ¦;
var λμ΄;
μ΄λ° μ½λλ₯Ό μ μΈμ΄λΌκ³ ν©λλ€.
var λμ΄;
var μ΄λ¦;
λμ΄ = 23;
μ΄λ¦ = 'lim';
μλ λμ€μ΄
ν λΉμ΄λΌκ³ ν©λλ€.
1. μ λ κ² μ μΈλ§ λ°λ‘ ν λΉλ§ λ°λ‘λ κ°λ₯ν©λλ€.
2. μ΄λ―Έ μλ λ³μλ₯Ό μ¬μ μΈ ν μ μμ΅λλ€.
3. μ΄λ―Έ λ€μ΄μλ κ°μ λ±νΈλ‘ μ¬ν λΉ ν μ μμ΅λλ€.
function ν¨μ(){
var λμ΄ = 23;
console.log(λμ΄); //κ°λ₯
}
console.log(λμ΄); //λΆκ°λ₯
λ³μλ μ¬μ©κ°λ₯ λ²μλΌλ κ²μ΄ μμ΅λλ€.
ν¨μ μμμ λ³μλ₯Ό λ§λ€μμ κ²½μ°,
ν¨μ μμμλ§ μ¬μ©κ°λ₯νκ³
λ°μμ μΆλ ₯ μ μλ¬λΉλλ€.
ν¨μ λ°κΉ₯μμ λ§λ λ³μλ§ μ¬μ©κ°λ₯ν©λλ€.
2. var, let, const μ¬μ μΈ, μ¬ν λΉ μ°¨μ΄
let λμ΄ = '23';
const λμ΄ = 23;
let, constλ¬Έλ²μ μ¨λ varκ³Ό κ°μ΄ μΆλ ₯λ©λλ€.
let λμ΄ = '23';
let λμ΄; //μλ¬λΈ
νμ§λ§ let, constλ μ¬μ μΈμ΄ λΆκ°λ₯ν©λλ€.
+)
μ¬μ μΈμ΄ λΆκ°λ₯νlet, constμ μ°μ:
μ½λλ₯Ό κΈΈκ² μμ±ν μΌμ΄ μκ²Όμ λ, λ³μ λ§λ κ²μ λ λ§λ€κ³
κ·Έλ° μ€μκ° λ°μν μ μμ΅λλ€. κ·Έκ²μ λ°©μ§ν΄μ€λλ€.
const λμ΄ = 23;
λμ΄ = 23; //μλ¬λΈ
constλ μ¬ν λΉλ λΆκ°λ₯ν©λλ€.
+)
μ¬ν λΉμ΄ λΆκ°λ₯ν constμ μ°μ:
κ°μ μμ νλ©΄ μλλ λ³μλ₯Ό λ§λ€λ μ μ©ν©λλ€.
if (true) {
let μ΄λ¦ = 'lim';
}
console.log(μ΄λ¦); //μλ€κ³ λμ΄
letκ³Ό constλ λ²μκ° λ μ’μμ.
λͺ¨λ μ€κ΄νΈκ° λ²μμ λλ€. if, function, λμ€μ λ°°μΈ forλ°λ³΅λ¬Έ
μ΄λ°κ²μ μ€κ΄νΈκ° μμ΅λλ€.
μ€κ΄νΈ μμμ λ§λ let, const λ³μμ κ²½μ°
μ€κ΄νΈλ₯Ό λ²μ΄λλ©΄
μλ€κ³ λΉλλ€.
3. μ 리
var | Function-scoped | μ¬μ μΈ γ | μ¬ν λΉ o |
let | {Block-scoped} | μ¬μ μΈ x | μ¬ν λΉ o |
const | {Block-scoped} | μ¬μ μΈ x | μ¬ν λΉ x |