νΈμ΄μ€ν
JS νΈμ΄μ€ν κ³Ό TDZ
νΈμ΄μ€ν hoisting μλ°μ€ν¬λ¦½νΈ μμ§μ μ½λλ₯Ό μ€ννκΈ° μ μ½λ μ 체λ₯Ό μ€μΊνλ©΄μ νμν λ° κ΅¬λΆνλ κ³Όμ μ κ±°μΉλλ° μ΄ κ³Όμ μμ λ³μ, ν¨μ, ν΄λμ€ λ± λͺ¨λ μ μΈμ μλ‘ λμ΄ μ¬λ¦½λλ€. μΈν°ν리ν°κ° λ³μμ ν¨μμ λ©λͺ¨λ¦¬ 곡κ°μ μ μΈ μ μ 미리 ν λΉνλ κ²μ μλ―Έν©λλ€. var μ κ²½μ° νΈμ΄μ€ν μ undefined λ‘ λ³μλ₯Ό μ΄κΈ°ν νμ§λ§, let κ³Ό const λ³μλ μ΄κΈ°ν λμ§ μμ΅λλ€. λλ¬Έμ μλμ κ°μ μ½λ(1) κ° κ°λ₯ν©λλ€. κ·Έλ¬λ μ μΈλΆλ§ λμ΄μ¬λ € λμ κ²μ΄κΈ°μ, (2) μ½λμ²λΌ ν λΉλ κ°μ κ°μ Έ μ€λ κ²μ λΆκ°λ₯ ν©λλ€. add(1, 3); // (1) ν¨μ μ μΈλ³΄λ€ μμ μμ§λ§ μ€λ₯ λμ§ μκ³ μ€νλ©λλ€. console.log(a); // (2) μλ¬. ν λΉλμ§ μμ κ²μ μΆλ ₯..
JS ν¨μ μ μΈλ¬Έκ³Ό ν¨μ ννμ μ°¨μ΄
ν¨μ μ μΈλ¬Έκ³Ό ν¨μ ννμμ΄ λ¬΄μμΈμ§ μμλ΄ μλ€. ν¨μλ₯Ό λ§λ λ€λ λͺ©μ μ λμΌ νλ λ§λλ λ°©λ²μ΄ λ€λ¦ λλ€. // ν¨μ μ μΈλ¬Έ function add(a, b) { return a+b; } // ν¨μ ννμ const sum = function(a,b) { return a+b; } ν¨μ μ체λ₯Ό μ μΈνλ©΄ ν¨μ μ μΈλ¬Έ, μ μΈν ν¨μλ₯Ό λ³μμ λ΄μμ μ¬μ©νλ©΄ ν¨μ ννμμ΄λΌ ν©λλ€. μ΄ λμ νΈμ΄μ€ν λ°©μμμ μ°¨μ΄κ° λ©λλ€. add(1, 3); // ν¨μ μ μΈλ³΄λ€ μμ μμ§λ§ μ€λ₯κ° λμ§ μμ΅λλ€. function add(a, b) { // ν¨μ μ μΈλ¬Έ return a+b; } console.log(sum(1,2)); // μλ¬. // ReferenceError Cannot access 'sum' before..