πνΈμ΄μ€ν (Hoisting)μ΄λ?
νΈμ΄μ€ν μ΄λ μ€μ½ν μμ μ‘΄μ¬νλ λͺ¨λ μ μΈλ€μ ν΄λΉ μ€μ½νμ μ΅μλ¨μΌλ‘ λμ΄ μ¬λ¦¬λ κ²μ λ§ν©λλ€.
'Hoisting' λ¨μ΄λ₯Ό κ²μν΄ λ³΄λ©΄ κ·Έ λ»λ 'λμ΄ μ¬λ¦¬κΈ°, λ€μ΄ μ¬λ € λλ₯΄κΈ°'λ‘ λμ€λ― νΈμ΄μ€ν μ 무μΈκ°λ₯Ό λμ΄ μ¬λ¦¬λ νμμ λλ€.
μλ°μ€ν¬λ¦½νΈ ν¨μλ μ€νλκΈ° μ μ ν¨μ μμ νμν λ³μ κ°λ€μ λͺ¨λ λͺ¨μμ μ ν¨ λ²μμ μ΅μλ¨μ μ μΈν©λλ€. μ¦, ν¨μ λ΄μμ μλ μͺ½μ μ‘΄μ¬νλ λ΄μ© μ€ νμν κ²λ€μ λμ΄ μ¬λ¦¬λ κ²μ λλ€.
λͺ¨λ μ μΈμ (fuction, var, let, const, class) νΈμ΄μ€ν λ©λλ€. varλ μ μΈκ³Ό λμμ μ΄κΈ°νκ° μ΄λ£¨μ΄μ Έμ undefinedλ‘ ν λΉ λμ§λ§, let λ° const μ μΈμ μ μΈλ§ λ λΏ, λ©λͺ¨λ¦¬ ν λΉμ΄ μμ§ λμ§ μμ TDZμ λ€μ΄κ°κ² λ©λλ€.
βTDZλ?
Temporal Dead Zoneμ μ½μλ‘ νκΈλ‘ μ§μνλ©΄ μΌμμ μ¬κ°μ§λλΌλ λ»μΈλ°, μ€μ½νμ μμ μ§μ λΆν° μ΄κΈ°ν μμ μ§μ κΉμ§μ ꡬκ°μ TDZλΌκ³ λΆλ¦ λλ€. μ¦ λ³μκ° μ μΈλκ³ λ³μμ μ΄κΈ°νκ° μ΄λ£¨μ΄μ§κΈ° μ κΉμ§μ ꡬκ°μ΄λΌκ³ λ§ν μ μμ΅λλ€.
νΈμ΄μ€ν μ ν¨μλ₯Ό μ΄λμ μ μΈ νμλ , μ κ²½μ°μ§ μκ³ νμν κ³³μμ μμ λ‘κ² μ¬μ©νκΈ° μν΄ λ§λ€μ΄μ§ κΈ°λ₯μ λλ€. κ·Έλ¬λ λλ‘λ μλμΉ μμ λ²κ·Έλ₯Ό μμ±ν μ¬μ§κ° μκΈ° λλ¬Έμ, μ΄λ₯Ό μλμ μΌλ‘ μ¬μ©νλ κ²½μ°κ° μλλΌλ©΄ νΈμ΄μ€ν μ΄ λμ§ μκ±°λ, TDZλ‘ μ΄κΈ°ν λλ let, const, ν¨μ ννμμ μ¬μ©νλ κ²μ κΆμ₯ν©λλ€.
π 꼬리 μ§λ¬Έ
ππ»βοΈ μ letκ³Ό constλ§ TDZκ° μ μ©λλμ?
π μ΄λ Javascript λ³μ μ μΈμ νΉμ± λλ¬ΈμΈλ°, varμ let, const λ³μ μ μΈμ λ³μκ° μμ±λλ μκΈ°μ μ΄κΈ°νλλ μκΈ°μ μ°¨μ΄κ° μκΈ° λλ¬Έμ λλ€. varλ λ³μκ° μ μΈλλ μμ μμ μ΄κΈ°νκ° ν¨κ» μ§νλλ©°, ν΄λΉ λ³μκ° μ μΈλκΈ° μ μλ μ¬μ©ν μ μκΈ° λλ¬Έμ var λ³μλ μ μΈλκΈ° μ μ μ¬μ©νλλΌλ 'undefined'λ‘ μ΄κΈ°ν λ©λλ€.
κ·Έλ¬λ 'let'κ³Ό 'const'λ λ³μκ° μ μΈλλ μμ μμ μ΄κΈ°ν λμ§ μκ³ , λ³μμ μ€μ½ν λ΄μμ μ€μ ν λΉλ¬Έμ΄ μ€νλ λ μ΄κΈ°ν λ©λλ€. μ΄λ‘μΈν΄ λ³μ μ μΈκ³Ό μ΄κΈ°ν μ¬μ΄μμ μΌμμ μ¬κ°μ§λ(TDZ)κ° νμ±λ©λλ€.
ππ»βοΈ νΈμ΄μ€ν μ μλ°μ€ν¬λ¦½νΈλ§μ νΉμ§μΈκ°μ?
π λ€, λ§μ΅λλ€. νΈμ΄μ€ν μ μλ°μ€ν¬λ¦½νΈμ λ νΉν νΉμ§μ΄λ©°, μ€μ μ½λκ° λμ΄ μ¬λ €μ§λ κ²μ μλκ³ , μλ°μ€ν¬λ¦½νΈ parserκ° λ΄λΆμ μΌλ‘ λμ΄μ¬λ €μ μ²λ¦¬νλ κ²μ λλ€.
ππ»βοΈ λμ΄ μ¬λ €μ§λ κ²μ²λΌ λμνλ€κ³ λ§μν΄ μ£Όμ ¨λλ°, μ»΄νμΌ λ¨κ³μμ μ€μ λ‘ μ½λκ° λμ΄μ¬λ €μ§μ§λ μλμ?
π νΈμ΄μ€ν μ κ°λ μ μΈ μ€λͺ μ μν΄ μ¬μ©λλ μ©μ΄λΌμ, μ½λκ° μ€μ λ‘ λ¬Όλ¦¬μ μΌλ‘ λμ΄μ¬λ €μ§μ§λ μμ΅λλ€. κ·Έμ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μ½λλ₯Ό ν΄μνκ³ , μ€ννκΈ° μ μ λ΄λΆμ μΌλ‘ μ²λ¦¬νλ λ¨κ³λ₯Ό λνλ΄λ κ°λ μ λλ€.
'TIL > For Interview' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Browser Rendering Process (λΈλΌμ°μ λ λλ§ μ리) (0) | 2023.10.22 |
---|---|
μ€ν 컨ν μ€νΈ(execution context)λ 무μμΈκ°μ? (0) | 2023.08.29 |
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP: Object Oriented Programming) (0) | 2023.05.16 |
Virtual DOMμ λν΄ μ λ¦¬ν΄ λ³΄λ μκ° (0) | 2023.04.06 |
What is a REST API? RESTful API? (0) | 2023.04.05 |