πΈ15μ₯. let, const ν€μλμ λΈλ‘ λ 벨 μ€μ½ν
β
15.1 var ν€μλλ‘ μ μΈν λ³μμ λ¬Έμ μ
1. λ³μ μ€λ³΅ μ μΈ νμ©
var ν€μλλ‘ μ μΈλ λ³μλ κ°μ μ€μ½ν λ΄μμ μ€λ³΅ μ μΈμ νμ©νλ€.
μ΄κΈ°νλ¬Έμ΄ μλ λ³μ μ μΈλ¬Έμ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ var ν€μλκ° μλ κ²μ²λΌ λμνλ€.
μ΄κΈ°νλ¬Έμ΄ μλ λ³μ μ μΈλ¬Έμ 무μλλ€.
2. ν¨μ λ 벨 μ€μ½ν
var ν€μλλ‘ μ μΈλ λ³μλ μ€λ‘μ§ ν¨μμ μ½λ λΈλ‘λ§μ μ§μ μ€μ½νλ‘ μΈμ νλ€. λ°λΌμ ν¨μ μΈλΆμμ var ν€μλλ‘ μ μΈνλ©΄, μ½λ λΈλ‘ λ΄μμ μ μΈν΄λ λͺ¨λ μ μ λ³μκ° λλ€.
3. λ³μ νΈμ΄μ€ν
var ν€μλλ‘ λ³μλ₯Ό μ μΈνλ©΄, λ³μνΈμ΄μ€ν μ μν΄ λ³μ μ μΈλ¬Έ μ΄μ μ μ°Έμ‘°ν μ μλ€.
β λ³μ μ μΈλ¬Έ μ΄μ μ λ³μλ₯Ό μ°Έμ‘°νλ κ²μ μλ¬λ₯Ό λ°μμν€μ§λ μμ§λ§ κ°λ μ±μ λ¨μ΄λ¨λ¦°λ€λ λ¬Έμ κ° μλ€
var ν€μλλ‘ μ μΈν λ³μλ λ°νμ μ΄μ μ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ μ묡μ μΌλ‘ βμ μΈ λ¨κ³βμ βμ΄κΈ°ν λ¨κ³βκ° λμμ μ§ννλ€.
μ μΈ λ¨κ³μμ μ€μ½ν(μ€ν컨ν μ€νΈμ λ μ컬 νκ²½)μ λ³μ μλ³μλ₯Ό λ±λ‘νκ³ μ¦μ μ΄κΈ°ν λ¨κ³μμ undefinedλ‘ λ³μλ₯Ό μ΄κΈ°ννλ€.
β
15.2 let ν€μλ (feat. var ν€μλμμ μ°¨μ΄μ )
1. λ³μ μ€λ³΅ μ μΈ κΈμ§
var ν€μλλ‘ μ΄λ¦μ΄ λμΌν λ³μλ₯Ό μ€λ³΅ μ μΈνλ©΄ μλ¬΄λ° μλ¬κ° λ°μνμ§ μμ§λ§,
let ν€μλλ‘ μ΄λ¦μ΄ λμΌν λ³μλ₯Ό μ€λ³΅ μ μΈνλ©΄ λ¬Έλ² μλ¬(Syntax Error)
κ° λ°μνλ€.
2. λΈλ‘ λ 벨 μ€μ½ν
let ν€μλλ‘ μ μΈλ λ³μλ λͺ¨λ μ½λ λΈλ‘(ν¨μ, ifλ¬Έ, forλ¬Έ, whileλ¬Έ, try - catchλ¬Έ λ±)μ μ§μ μ€μ½νλ‘ μΈμ νλ λΈλ‘ λ 벨 μ€μ½ν
λ₯Ό λ°λ₯Έλ€.
μ½λ λΈλ‘ λ΄μμ μ μΈν λ³μλ μ§μλ³μ
3. λ³μ νΈμ΄μ€ν
*
let ν€μλλ‘ μ μΈν λ³μλ λ³μ νΈμ΄μ€ν μ΄ λ°μνμ§ μλ κ²μ²λΌ λμνλ€.
let ν€μλλ‘ μ μΈν λ³μλ βμ μΈ λ¨κ³βμ βμ΄κΈ°ν λ¨κ³βκ° λΆλ¦¬λμ΄ μ§ννλ€.
λ°νμ μ΄μ μ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ μ묡μ μΌλ‘ μ μΈλ¨κ³κ° λ¨Όμ μ€νλμ§λ§, μ΄κΈ°ν λ¨κ³λ λ³μ μ μΈλ¬Έμ λλ¬νμ λ μ€νλλ€.
λ°λΌμ, μ΄κΈ°ν λ¨κ³κ° μ€νλκΈ° μ΄μ μ λ³μ μ κ·Ό μ, μ μ½λμ²λΌ μ°Έμ‘° μλ¬(Reference Error)
κ° λ°μνλ€.
μ€μ½νμ μμ μ§μ λΆν° μ΄κΈ°ν λ¨κ³ μμ μ§μ (λ³μ μ μΈλ¬Έ)κΉμ§ λ³μλ₯Ό μ°Έμ‘°ν μ μλ λ°, μ΄ κ΅¬κ°μ μΌμμ μ¬κ°μ§λ(Temporal Dead Zone; TDZ)
λΌ λΆλ₯Έλ€.
π§ μ€μ λ‘ λ³μ νΈμ΄μ€ν μ λ°μνμ§ μλ κ²μ μλκ°?
No. λ³μ νΈμ΄μ€ν μ λ°μνλ€!
λ§μ½, λ³μ νΈμ΄μ€ν μ΄ λ°μνμ§ μλλ€λ©΄, μ μ½λλ μ μλ³μμ κ°μ μΆλ ₯ν΄μΌ νλ€. νμ§λ§ μ°Έμ‘° μλ¬κ° λ°μνλ―λ‘, λ³μ νΈμ΄μ€ν μ λμνλ κ²μ νμΈν μ μλ€.
μ°Έκ³ ) μ μ κ°μ²΄μ let
var ν€μλλ‘ μ μΈν μ μ λ³μμ μ μ ν¨μ, κ·Έλ¦¬κ³ μ μΈνμ§ μμ λ³μμ κ°μ ν λΉν μ묡μ μ μμ μ μ κ°μ²΄ windowμ νλ‘νΌν°κ° λλ€.
νμ§λ§, let ν€μλλ‘ μ μΈν μ μ λ³μλ μ μ κ°μ²΄μ νλ‘νΌν°κ° μλκΈ° λλ¬Έμ window.fooμ κ°μ΄ μ κ·Όν μ μλ€.
let μ μ λ³μλ 보μ΄μ§ μλ κ°λ μ μΈ λΈλ‘(μ μ λ μ컬 νκ²½μ μ μΈμ νκ²½ λ μ½λ(DER)) λ΄μ μ‘΄μ¬νλ€.
β
15.3 const ν€μλ
μΌλ°μ μΌλ‘ let ν€μλμ λλΆλΆ μ±μ§μ΄ λμΌνκΈ° λλ¬Έμ, let ν€μλμμ μ°¨μ΄μ λ§ νμΈ
1. μ μΈκ³Ό λμμ μ΄κΈ°ν
const ν€μλλ‘ μ μΈν λ³μλ λ°λμ μ μΈκ³Ό λμμ μ΄κΈ°ν
λ₯Ό ν΄μΌνλ€.
2. μ¬ν λΉ κΈμ§
const ν€μλλ‘ μ μΈν λ³μλ μ¬ν λΉμ΄ κΈμ§
λλ€.
3. μμ
const ν€μλλ‘ μ μΈν λ³μμ μμ κ°
μ ν λΉνλ©΄, κ°μ λ³κ²½ν μ μλ€.
π§ μμλ?
μ¬ν λΉμ΄ κΈμ§λ λ³μλ‘, μμλ λ³μμ²λΌ κ°μ μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ κ°μ§λ€.
λ³μλ μΈμ λ μ§ μ¬ν λΉμ ν΅ν΄ κ°μ λ³κ²½ν μ μμ§λ§, μμλ μ¬ν λΉμ΄ κΈμ§λ λΏμ΄λ€.
μν μ μ§μ κ°λ μ±, μ μ§λ³΄μμ νΈμλ₯Ό μν΄ μμ μ¬μ©μ΄ κΆμ₯λλ€.
μΌλ°μ μΌλ‘ μμ μ΄λ¦μ λλ¬Έμλ‘ μ μΈνκ³ , μ¬λ¬ λ¨μ΄λ‘ μ΄λ€μ§ κ²½μ° μΈλμ€μ½μ΄(_)λ‘ κ΅¬λΆνμ¬
μ€λ€μ΄ν¬ μΌμ΄μ€
λ‘ νννλ€.
4. κ°μ²΄
const ν€μλλ‘ μ μΈν λ³μμ κ°μ²΄
λ₯Ό ν λΉνλ©΄, κ°μ λ³κ²½ν μ μλ€.
λ³κ²½ λΆκ°λ₯ν κ°μΈ μμ κ°μ μ¬ν λΉ μμ΄λ λ³κ²½ν μ μλ λ°©λ²μ΄ μμ§λ§, λ³κ²½ κ°λ₯ν κ°μΈ κ°μ²΄λ μ¬ν λΉ μμ΄λ μ§μ λ³κ²½μ΄ κ°λ₯νκΈ° λλ¬Έμ΄λ€.
λ°λΌμ,,βconst ν€μλλ μ¬ν λΉμ κΈμ§
ν λΏ, βλΆλ³βμ μλ―Ένμ§ μλλ€λ κ²μ μ£Όμνμ!
μλ‘μ΄ κ°μ ν λΉνλ κ²(μ¬ν λΉ)μ λΆκ°λ₯νμ§λ§,
νλ‘νΌν° λμ μμ±/μμ /κ° λ³κ²½μ ν΅ν΄ κ°μ²΄λ₯Ό λ³κ²½νλ κ²μ κ°λ₯νλ€! (λ³μμ ν λΉλ μ°Έμ‘° κ°μ λ³κ²½λμ§ μμ)
Last updated