μλ°μ€ν¬λ¦½νΈ λ³μμ μΈ : let vs var / const
variavle λ³μ > λ³κ²½λ μ μλκ°
- read / write = λ©λͺ¨λ¦¬μ μ μ₯λμ΄ μ°κ³ μ½λκ² κ°λ₯
- λ³μλ₯Ό μ μΈνκ³ μ¬ ν λΉμ΄ κ°λ₯νλ€.
λ³μμ global scope μ block scope
let μ global scope - μ€νμ μ²μλΆν° λκΉμ§ λ©λͺ¨λ¦¬ μ¬μ©
let name = 'ellie'; // nameμ΄λ λ³μμ ellie μ μΈ
name = 'hello'; // λ³μnameμ hello μ¬ν λΉ
console.log('name: ', name); // νμΈμ name = hello κ°λ¨
let μ block scope {} - λΈλμμ μ½λ μμ±μ λΈλλ°μμ λΈλμμ λ΄μ©μ μ½μ§λͺ»ν¨
(λΈλλ°μμ μμ±λ μ½λλ€μ global scope λ‘ μ΄λμλ μ κ·Ό κ°λ₯)
{
let name2 = 'hyojin';
name2 = 'hyo';
}
λ³μμ μΈμ let / var μ°¨μ΄ (*var μ¬μ©κΈμ§)
- μλ°μ€ν¬λ¦½νΈμμ μ½λ μμ±μ λ³μ μ μΈ ν κ° μ¬ν λΉμ΄ μμΉμ΄λ var μ μ΄μμΉμ΄ 무μλλ€.
console.log(age);
age = 4;
var age;
μμ κ°μ΄ κ°μ΄ λ¨Όμ ν λΉλ ν λ³μκ° λμ€μ λμ€κ³ console.log λ‘ λ¨Όμ μ°μ΄λ³΄λ©΄
var | console.log(age); κ° undefind λ‘ μ½ν |
hoisting 무μ > global scope λ‘ λ¬Έλ²μμ±μ΄ μ΄κΈ°νλ 맨 μλ¨μΌλ‘ λμ΄ | |
{} block scope 무μ | |
let | console.log(age); κ° μλ¬λ‘ λμ΄ (μ μ) |
const
- reed only λ©λͺ¨λ¦¬μμ μ½λκ²λ§ κ°λ₯
- λ³μ μ¬ν λΉ λΆκ°
λ³μμ κ°μ΄ κ³μ λ°κ»΄μΌν μ΄μ κ° μλ€λ©΄ const μ¬μ© κΆμ₯
const μ¬μ©λ²
//const λ‘ λ³μλ₯Ό μ μΈνλ©΄ μ¬μ¬μ© ν μ μμ§λ§
const ellie = 'ellie';
const ellie = { name: 'ellie', age: 20 };
//μ΄ ellie λ const λ‘ μ§μ μ΄ λμ΄μμ΄μ νλ² ν λΉλ μ΄ μ€λΈμ νΈλ λ€λ₯Έ μ€λΈμ νΈλ‘ ν λΉ λΆκ°
//λ¨ ellie μ€λΈμ νΈ μμ nameκ³Ό age λ‘ λ³μκ° μμ΄μ ellie.name μΌλ‘ λ³μμ μ κ·Όν΄ μ¬ν λΉ κ°λ₯
ellie.name = 'ellllllllie';
ellie.age = 30;
console.log('ellie: ', ellie);
console.log λ‘ νμΈμ λ³μλ‘ μ¬ν λΉ νκ²μ νμΈν μ μλ€.