ํ•จ์ˆ˜(Function)

๊น€๋•…์ฃผยท2021๋…„ 3์›” 25์ผ
0

Javascript

๋ชฉ๋ก ๋ณด๊ธฐ
3/23
post-thumbnail

๐Ÿ’ ํ•จ์ˆ˜ ์ •์˜ํ•˜๊ธฐ




๐Ÿ’ ํ•จ์ˆ˜ ํ˜ธ์ถœํ•˜๊ธฐ



function sayhi() {
  let hi = "์•ˆ๋…•";
  return hi;
} //ํ•จ์ˆ˜์„ ์–ธ

sayhi(); //ํ•จ์ˆ˜ํ˜ธ์ถœ

ํ•จ์ˆ˜ ๋‚ด๋ถ€๊ฐ€ ์‹คํ–‰๋˜๋ ค๋ฉด ์œ„์™€ ๊ฐ™์ด ํ˜ธ์ถœํ•ด์•ผํ•œ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์ •์˜๋งŒ ํ•˜๊ณ  ํ˜ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค!

(๐Ÿšจ์ •์˜์™€ ํ˜ธ์ถœ ์ž˜ ๊ตฌ๋ถ„ํ•˜๊ธฐ!!!)


๐Ÿ’ ํ•จ์ˆ˜ ์„ ์–ธํ•˜๊ณ  ํ˜ธ์ถœํ•˜๊ธฐ



```jsx function add(x) { var y = x + 1; return y; } ```

์—ฌ๊ธฐ์„œ add์€ ๋ณ€์ˆ˜์ด๋ฆ„, x๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋„ฃ๊ณ  ์‹ถ์€ ๊ฒƒ์„ ๋„ฃ๋Š” ๊ณณ์ด๋‹ค(์ธ์ž๋ฅผ ๋„ฃ๋Š”๋‹ค)

x๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜(Parameter), ํ•จ์ˆ˜ ์•ˆ์—๋Š” y๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ ๋’ค x์— +1์„ ๋”ํ•˜๋ผ ๋˜์–ด์žˆ๋‹ค.

return์€ y๊ฐ’(๋ณ€์ˆ˜)์„ ๋ฐ”๊นฅ์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ  ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•˜๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

์ฆ‰ x๊ฐ’์„ ๋ฐ›์•„ 1์„ ๋”ํ•œ ํ›„ ๋ฐ”๊นฅ์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ ๋ฐ˜ํ™˜์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ–‰์œ„๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค

ํ˜ธ์ถœ์„ ํ†ตํ•ด ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฐ’(y)๋ฅผ ์ €์žฅํ•  ๊ทธ๋ฆ‡(๋ณ€์ˆ˜)์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค€๋‹ค

์•„๋ž˜์—์„œ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ add(1);


var i = add(1);
i; // 2 

1(์ธ์ž)์„ ๋„ฃ์œผ๋ฉด 1์ด ๋งค๊ฐœ๋ณ€์ˆ˜x๋กœ ์ „๋‹ฌ->ํ•จ์ˆ˜ ๋‚ด๋ถ€ ์ฝ”๋“œ ์‹คํ–‰->1+1 -> return์— ์˜ํ•ด y๊ฐ’(2) ๋ฐ˜ํ™˜ -> i์— y๊ฐ’์ธ 2๊ฐ€ ์ €์žฅ



๐Ÿ“Œํ•จ์ˆ˜์˜ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„


  1. ํ˜ธ์ถœํ•œ ์ฝ”๋“œ์— ์žˆ๋Š” ์ธ์ˆ˜๊ฐ€ ํ•จ์ˆ˜ ์ •์˜๋ฌธ์˜ ์ธ์ž์— ๋Œ€์ž…๋œ๋‹ค.
  2. ํ•จ์ˆ˜ ์ •์˜๋ฌธ์˜ ์ค‘๊ด„ํ˜ธ ์•ˆ์— ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.
  3. return ๋ฌธ์ด ์‹คํ–‰๋˜๋ฉด ํ˜ธ์ถœํ•œ ์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐ„๋‹ค.์ด๊ฒƒ์€ ๋ฐ˜ํ™˜๊ฐ’์ด ๋œ๋‹ค.
  4. return ๋ฌธ์ด ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์ด ์‹คํ–‰๋˜๋ฉด, ํ˜ธ์ถœํ•œ ์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐ„ ํ›„์— undefined ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜๊ฐ’์ด ๋œ๋‹ค.

ํ•จ์ˆ˜๊ฐ€ return ํ•˜์ง€ ์•Š์„ ๋•Œ


ํ•จ์ˆ˜ ์ค‘์—๋Š” return ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋„ ์žˆ๋‹ค


์˜ˆ์‹œ

var dateChecker = function() {
    var date = new Data();
    alert(data);
    };
    dateChecker(); // undefined๊ฐ€ ๋‚˜์˜ด

์ฝ˜์†” ์ฐฝ์— ์‹คํ–‰์„ ์‹œํ‚ค๋ฉด undefined๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.
์ด๊ฒƒ์€ dateCheckerํ•จ์ˆ˜์˜ return๊ฐ’์ด๋‹ค.

๋ชจ๋“  ํ•จ์ˆ˜๋Š” return์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ undefined๊ฐ€ ๋™์ž‘ํ•œ๋‹ค

๋˜ํ•œ return ์ดํ›„์—๋Š” ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜์–ด ์‹œํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.


์˜ˆ์‹œ)

var really = function() {
    return;                 //๋ฆฌํ„ด์‹คํ–‰
    alert('์‹คํ–‰๋˜์ง€์•Š์Šต๋‹ˆ๋‹ค'); //return๋ณด๋‹ค ๋’ค์— ์žˆ๊ธฐ ๋–„๋ฌธ์— ๋ฌด์‹œ๋œ๋‹ค
    };
    really();
profile
์ผ๊ณฑ ๋ฒˆ ๋„˜์–ด์ ธ๋„ ์—ฌ๋Ÿ ๋ฒˆ ์ผ์–ด๋‚˜๋ฉด์„œ ์„ฑ์žฅํ•˜๋Š” ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด