Function Declarations vs. Function Expressions1 - Lee-hyuna/33-js-concepts-kr GitHub Wiki
JavaScript μμ Function ννμκ³Ό μ μΈμ΄λ ?
function ꡬ문μ ν¨μλ₯Ό μ μΈν©λλ€.
μ μΈ λ ν¨μλ "λμ€μ μ¬μ©νκΈ° μν΄ μ μ₯" λκ³ νΈμΆ λ λ μ€νλ©λλ€.
λ³μ μ μΈμ "var"λ‘ μμν΄μΌνλ κ²μ²λΌ ν¨μμ μ μΈμ "function"μΌλ‘ μμν΄μΌν©λλ€.
function bar() {
return 3;
}
ν¨μλ₯Ό μ¬μ©νλ €λ©΄ μ΄λ¦μ μ¬μ©νμ¬ νΈμΆν΄μΌν©λλ€. μ: bar ();
ν¨μ ννμμ΄λ 무μμΈκ°μ ?
ν¨μλ ννμμ μ¬μ©νμ¬ μ μ ν μλ μμ΅λλ€. ν¨μ ννμμ λ³μμ μ μ₯ λ μ μμ΅λλ€.
var x = function (a, b) {return a * b};
ν¨μλ₯Ό λ³μμ μ μ₯ ν νμ λ³μλ₯Ό ν¨μμ²λΌ μ¬μ©ν μ μμ΅λλ€. λ³μμ μ μ₯λ ν¨μμλ ν¨μ μ΄λ¦μ΄ νμμμ΅λλ€. λ³μ μ΄λ¦μ μ¬μ©νμ¬ νΈμΆν©λλ€.
ν¨μ ννμ vs ν¨μ ꡬ문
Example: Function Expression
alert(foo()); // ERROR! foo wasn't loaded yet
var foo = function() { return 5; }
Example: Function Declaration
alert(foo()); // Alerts 5. Declarations are loaded before any code can run.
function foo() { return 5; }
- ν¨μ μ μΈμ μ½λκ° μ€νλκΈ° μ μ λ‘λλ©λλ€. ν¨μ ννμμ μΈν°ν리ν°κ° ν΄λΉ μ½λ νμ λλ¬ ν λ λ‘λλ©λλ€.
- var λ¬Έκ³Ό μ μ¬νκ² ν¨μ μ μΈμ λ€λ₯Έ μ½λμ 맨 μλ‘ μ¬λΌκ°λλ€. ν¨μ ννμμ νΈμ΄μ€νΈλμ§ μκΈ° λλ¬Έμ μ μ λ λ²μμ λ‘컬 λ³μ 볡μ¬λ³Έμ μ μ§ν μ μμ΅λλ€.
ν¨μ ννμμ μ΄μ
ν¨μ ννμμ΄ ν¨μ μ μΈμλ³΄λ€ λ μ μ©νκ² μ¬μ©λλ λͺ κ°μ§ λ€λ₯Έ λ°©λ²μ΄ μμ΅λλ€.
- ν΄λ‘μ
- λ€λ₯Έ ν¨μμ μΈμλ‘μ
- μ¦μ νΈμΆ λ ν¨μ μ (IIFE)