Function

λ°œν‘œμΌ
Nov 7, 2022
μž‘μ„±μž
λ°±λ―Όμ’…

μ„ μ • 이유

  • κΈˆμš”μΌ 저녁 유튜브λ₯Ό 보고 JS의 ν•¨μˆ˜ μ„ μ–Έ 방식에 λŒ€ν•΄ 정리해보고 μ‹Άμ—ˆμŒ.

JS의 ν•¨μˆ˜ μ„ μ–Έ 방식

  • ν•¨μˆ˜ 선언식
  • ν•¨μˆ˜ ν‘œν˜„μ‹
  • ν™”μ‚΄ν‘œ ν•¨μˆ˜
  • 기타 등등…

ν•¨μˆ˜ 선언식

function sum(a, b) { return a + b; } sum(1, 2);

ν•¨μˆ˜ ν‘œν˜„μ‹

const sum = function (a, b) { return a + b; }; sum(1, 2);

ν•¨μˆ˜ 선언식과 ν‘œν˜„μ‹μ˜ 차이점

  • ν•¨μˆ˜ 선언식은 ν˜Έμ΄μŠ€νŒ…μ— 영ν–₯을 λ°›μ§€λ§Œ, ν•¨μˆ˜ ν‘œν˜„μ‹μ€ ν˜Έμ΄μŠ€νŒ…μ— 영ν–₯을 λ°›μ§€ μ•ŠλŠ”λ‹€.
  • μ„ μ–Έμ‹μœΌλ‘œ ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” 경우 μ„Έλ―Έμ½œλ‘ μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • ν‘œν˜„μ‹μœΌλ‘œ ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” 경우 μ„Έλ―Έμ½œλ‘ μ„ μ‚¬μš©ν•œλ‹€.

μ™œ?

μ•„λž˜ 두 μ½”λ“œμ˜ κ²°κ³ΌλŠ” λ¬΄μ—‡μΌκΉŒ?
hello('minjong'); var hello = function(name) { return `hello, ${name}!!!`; };
hello('minjong'); function hello (name) { return `hello, ${name}!!!`; }
 
μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 문은 μ΅œμ†Œ μ‹€ν–‰ λ‹¨μœ„λΌκ³  λ§ν•˜λ©°, κ°’μœΌλ‘œ 평가될 수 μžˆλŠ” 문을 ν‘œν˜„μ‹μ΄λΌκ³  ν•œλ‹€.
μ„Έλ―Έμ½œλ‘ μ€ 문의 μ’…λ£Œλ₯Ό λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€. 단, {} 둜 λ‘˜λŸ¬μŒ“μΈ 블둝은 자체 쒅결성을 κ°–κΈ° λ•Œλ¬Έμ— 뢙이지 μ•ŠλŠ”λ‹€.

ν™”μ‚΄ν‘œ ν•¨μˆ˜

const sum = (a, b) => { return a + b; };

ν•¨μˆ˜ ν‘œν˜„μ‹κ³Ό ν™”μ‚΄ν‘œ ν•¨μˆ˜μ˜ 차이점

  • ν•¨μˆ˜ ν‘œν˜„μ‹μœΌλ‘œ μ •μ˜ν•œ ν•¨μˆ˜μ˜ thisλŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ κ²°μ •λœλ‹€.
  • ν™”μ‚΄ν‘œ ν•¨μˆ˜μ˜ thisλŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•  λ•Œ κ²°μ •λœλ‹€.
  • ν™”μ‚΄ν‘œ ν•¨μˆ˜λŠ” ν”„λ‘œν† νƒ€μž… ν”„λ‘œνΌν‹°λ₯Ό κ°–μ§€ μ•ŠλŠ”λ‹€.