Skip to content

Latest commit

Β 

History

History
50 lines (35 loc) Β· 2.65 KB

File metadata and controls

50 lines (35 loc) Β· 2.65 KB

JavaScript ν•¨μˆ˜

ν•¨μˆ˜ μ„ μ–Έλ¬Έ vs ν•¨μˆ˜ ν‘œν˜„μ‹

  • ν•¨μˆ˜ 선언문은 function의 μ •μ˜λΆ€λ§Œ μ‘΄μž¬ν•˜κ³  λ³„λ„μ˜ ν• λ‹Ή λͺ…령이 μ—†λŠ” 것을 μ˜λ―Έν•˜κ³ , ν•¨μˆ˜ ν‘œν˜„μ‹μ€ μ •μ˜ν•œ function을 λ³„λ„μ˜ λ³€μˆ˜μ— ν• λ‹Ήν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

  • ν•¨μˆ˜ μ„ μ–Έλ¬Έμ˜ 경우 λ°˜λ“œμ‹œ ν•¨μˆ˜λͺ…이 μ •μ˜λΌ μžˆμ–΄μ•Ό ν•˜λŠ” 반면, ν•¨μˆ˜ ν‘œν˜„μ‹μ€ 없어도 λœλ‹€.

  • ν•¨μˆ˜ 선언문은 ν•¨μˆ˜ 전체λ₯Ό ν˜Έμ΄μŠ€νŒ…ν•˜λŠ” 반면, ν•¨μˆ˜ ν‘œν˜„μ‹μ€ λ³€μˆ˜μ˜ μ„ μ–ΈλΆ€λ§Œ λŒμ–΄μ˜¬λ¦°λ‹€. λ”°λΌμ„œ ν•¨μˆ˜ ν‘œν˜„μ‹μœΌλ‘œ μ„ μ–Έν•œ ν•¨μˆ˜λŠ” μ„ μ–Έ 전에 ν˜ΈμΆœν•  경우 μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.


읡λͺ… ν•¨μˆ˜ vs κΈ°λͺ… ν•¨μˆ˜

ν•¨μˆ˜ ν‘œν˜„μ‹μœΌλ‘œ ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” 경우, ν•¨μˆ˜λͺ…을 μ •μ˜ν•œ ν•¨μˆ˜ ν‘œν˜„μ‹μ„ κΈ°λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹, μ •μ˜ν•˜μ§€ μ•Šμ€ 것을 읡λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹μ΄λΌκ³  λΆ€λ₯Έλ‹€.

읡λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹μ—μ„œλŠ” λ³€μˆ˜λͺ…이 κ³§ ν•¨μˆ˜λͺ…이고, κΈ°λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹μ—μ„œλŠ” λ³€μˆ˜λͺ…κ³Ό ν•¨μˆ˜λͺ…이 λ”°λ‘œ μ‘΄μž¬ν•œλ‹€.

κΈ°λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹μ€ μ£Όμ˜ν•΄μ•Όν•  점이 μžˆλŠ”λ°, μ •μ˜ν•œ ν•¨μˆ˜λͺ…은 였직 ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œλ§Œ μ ‘κ·Όν•  수 있고, μ™ΈλΆ€μ—μ„œλŠ” ν•¨μˆ˜λͺ…μœΌλ‘œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μ—†λ‹€. κΈ°λͺ… ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μž¬κ·€ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” μš©λ„λ‘œ ν•¨μˆ˜λͺ…을 μ“Έ 수 μžˆλ‹€.

// 읡λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹
var func1 = function () {
  ...
};

// κΈ°λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹
var func2 = function funcName () {
  ...
};

μΌκΈ‰μ‹œλ―Ό + 일급객체 + μΌκΈ‰ν•¨μˆ˜

μΌκΈ‰μ‹œλ―Ό

λ‹€μŒμ˜ 쑰건을 λ§Œμ‘±ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

  1. λ³€μˆ˜μ— 담을 수 μžˆλ‹€.
  2. ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λ‘œ 전달할 수 μžˆλ‹€.
  3. ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.

일급객체

javascript의 κ°μ²΄λŠ” 일급객체이닀. μΌκΈ‰κ°μ²΄λž€ μΌκΈ‰μ‹œλ―Όμ˜ 쑰건을 μΆ©μ‘±ν•˜λŠ” 객체이닀.

μΌκΈ‰ν•¨μˆ˜

javascript의 ν•¨μˆ˜λŠ” μΌκΈ‰ν•¨μˆ˜μ΄λ‹€. 즉, ν•¨μˆ˜κ°€ ν•˜λ‚˜μ˜ κ°’κ³Ό 같이 μ·¨κΈ‰λ˜λŠ” κ²ƒμœΌλ‘œ, λ‹€λ₯Έ ν•¨μˆ˜μ˜ '인자'둜 μ „λ‹¬λ˜κ³ , λ‹€λ₯Έ ν•¨μˆ˜μ˜ 'λ°˜ν™˜κ°’'으둜 μ‚¬μš©ν•  수 μžˆλŠ” 것이 νŠΉμ§•μ΄λ‹€.


μ¦‰μ‹œμ‹€ν–‰ν•¨μˆ˜

μ¦‰μ‹œμ‹€ν–‰ν•¨μˆ˜λŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜μžλ§ˆμž λ°”λ‘œ ν˜ΈμΆœν•˜λŠ” 것이닀. μ¦‰μ‹œμ‹€ν–‰ν•¨μˆ˜λŠ” μ¦‰μ‹œ μ‹€ν–‰λ˜κ³  κ·Έ ν›„ μ „μ—­μ—μ„œ λ°”λ‘œ 사라진닀.

μ¦‰μ‹œμ‹€ν–‰ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” μ „μ—­λ³€μˆ˜μ˜ μ‚¬μš©μ„ μ–΅μ œν•˜κΈ° μœ„ν•¨μ΄λ‹€. μ¦‰μ‹œμ‹€ν–‰ν•¨μˆ˜λŠ” μ™ΈλΆ€μ—μ„œ ν•¨μˆ˜ λ‚΄μ˜ λ³€μˆ˜μ— μ ‘κ·Όν•  경우 이λ₯Ό ν†΅μ œν•  수 μžˆλ‹€. μ „μ—­ λ³€μˆ˜λ₯Ό μΆ”κ°€ν•˜μ§€ μ•Šμ•„λ„ 되기 λ•Œλ¬Έμ—, μ½”λ“œ 좩돌 없이 κ΅¬ν˜„ν•  수 μžˆμ–΄ ν”ŒλŸ¬κ·ΈμΈμ΄λ‚˜ 라이브러리 등을 λ§Œλ“€ λ•Œ 많이 μ‚¬μš©λœλ‹€.