GitHubμ μλ 33 Concepts Every JavaScript Developer Should Know λΌλ 리ν¬μ§ν 리μ λ΄μ© μ€ κ³΅λΆνκ³ μΆμ μν°ν΄μ λ΄κ° μ 리ν κ²Έ κΈ°μ΅ν κ²Έ μμ±νλ λ²μκΈμ΄λ€. 33κ°μ§ μ€ λ λ²μ§ΈμΈ κΈ°λ³Ένκ³Ό κ΄λ ¨λ λ΄μ©μ΄λ€.
β» λ΄λ³΄λ΄λ²(λ΄κ° λ³΄λ €κ³ λ΄κ° λ²μν): μμ΄ μ 곡μλ ν΄μΈ μ ννλ μλκΈ°μ λ²μμλ μμ, μ€μ, κ΅¬κΈ λ²μμ΄ λ¬΄μν λ§μ μ μμΌλ©°, μ€νλ λ§μ μ μλ€. μ νν λ΄μ©μ μλ¬Έμ μ§μ μ΄ν΄λ³΄κ±°λ λ€λ₯Έ μ 보λ€μ λ μ°Ύμ보λ κ²μ μΆμ²νλ€.
(νμ§λ§ λκΈ νΌλλ°±λ νμν©λλ€π )
μ΄λ²μ κ³ λ₯Έ μν°ν΄μ Mandeep Singh λμ΄ μμ±νμ Function Declarations vs. Function Expressions μ΄λ€. λ΄μ© μ€κ° μ€κ° π€μ΄ μμ΄μ½μ λ³Έλ¬Έμ λμ μμ§ μμ λ²μνλ©° μΆκ°ν λ§μ΄λ€.
μλ°μ€ν¬λ¦½νΈμμ ν¨μλ¬Έ(Statement)/μ μΈλ¬Έ(Declarations)μ΄λ?
ν¨μλ¬Έμ ν¨μλ₯Ό μ μνλ€.
μ μλ ν¨μλ "λμ€μ μ¬μ©λκΈ° μν΄ μ μ₯"λλ©°, νμ νΈμΆλ λ μ€νλ κ²μ΄λ€.
λ³μ μ μλ varλ‘ μμν΄μΌλλ κ²μ²λΌ, ν¨μ μ μλ "function"μΌλ‘ μμλμ΄μΌνλ€.
μμ.
function bar() {
return 3;
}
- ν¨μλ μ΄κ³³μλ§ μ μλμ΄ μλ€. ν¨μλ₯Ό μ¬μ©νκΈ° μν΄μλ ν¨μ μ΄λ¦μ μ¬μ©νμ¬ νΈμΆλμ΄μΌ νλ€. μμ. bar();
ν¨μ ννμμ΄λ?
μλ°μ€ν¬λ¦½νΈ ν¨μλ ννμμ μ¬μ©νμ¬ μ μλ μ μλ€.
ν¨μ ννμμ λ³μμ μ μ₯λ μ μλ€:
var x = function (a, b) {return a * b};
ν¨μ ννμμ΄ λ³μμ μ μ₯λκ³ λ νμ, λ³μλ ν¨μλ‘μ μ¬μ©λ μ μλ€. λ³μμ μ μ₯λ ν¨μλ ν¨μ μ΄λ¦μ΄ νμνμ§ μλ€. νμ λ³μ μ΄λ¦μΌλ‘ νΈμΆλμ΄μ§λ€.
ν¨μ ννμ VS. ν¨μλ¬Έ(Statement)
μμ: ν¨μ ννμ
alert(foo()); // ERROR! foo wasn't loaded yet
var foo = function() { return 5; }
μμ: ν¨μ μ μΈλ¬Έ
alert(foo()); // Alerts 5. Declarations are loaded before any code can run.
function foo() { return 5; }
- ν¨μ μ μΈλ¬Έμ λ€λ₯Έ μ½λκ° μ€νλκΈ° μ μ λ‘λλλ λ°λ©΄ ν¨μ ννμμ μΈν°ν리ν°κ° μ½λμ ν΄λΉ λΌμΈμ λλ¬ν΄μΌλ§ λ‘λλλ€.
- var λ¬Έκ³Ό λΉμ·νκ², ν¨μ μ μΈλ¬Έμ λ€λ₯Έ μ½λλ€ μλ‘ νΈμ΄μ€ν λλ€. ν¨μ ννμμ νΈμ΄μ€ν λμ§ μμΌλ―λ‘ ν¨μ ννμμ΄ μ μλ μ€μ½νμ μ§μ λ³μμ 볡μ¬λ³Έμ μ μ§ν μ μλ€.
ν¨μ ννμμ μ΄μ
μλμ λ΄μ©λ€μ ν¨μ ννμμ΄ ν¨μ μ μΈμλ³΄λ€ λ μ μ©ν΄μ§ μ μλ λͺ κ°μ§ λ€λ₯Έ μ΄μ λ€μ΄λ€.
- ν΄λ‘μ
- λ€λ₯Έ ν¨μμ μΈμ
- μ¦μ νΈμΆ ν¨μ ννμ(IIFE)
Credits : Angus Croll , www.sitepoint.com