Function(함수) - parameter(매개변수), argument(인자)

Doyoon Lee·2020년 7월 23일
0

Javascript

목록 보기
14/23

함수안에서 다른 함수를 호출하기

function getTax(price) {
  return price * 0.1;
}

function calculateTotal(price) {
  return price + getTax(price);
}

var result = calculateTotal(3500);
console.log(result);

위의 예시와 같이 함수 안에서 또 함수를 호출할 수도 있다.

calculateTotal 함수 내부에서 getTax를 또 호출했다.

  • Assignment
function getTax(price) {
  return price * 0.1;
}

function calculateTotal(price) {
  return price + getTax(price);
// 10 + 1 = 11
// 5 + 0.5 = 5.5 
}

let result = calculateTotal(3500);
console.log(result);

**function getTotal(priceKeyboard, priceMouse) {
  return calculateTotal(priceKeyboard) + calculateTotal(priceMouse);
}**

getTotal(10, 5);

위의 예시처럼 getTotal 이라는 새로운 함수를 만들고,

거기에 두개의 parameter 를 만들어서 그 안에서 calculateTotal함수 안에 argument 를 넣어서 호출할 수 있다.

그리고 그 결과값을 리턴하면, 하나의 함수 안에 다른 함수를 넣어서 사용할 수 있는 것이다.



여러개의 인자를 받는 함수

function consoleSuccess(month, name) {   
  console.log(month, name); 
}  

let result = consoleSuccess("3", "김개발"); 
console.log("consoleSuccess 호출 값은" + result); 

예시를 보면 consoleSuccess 에서 함수를 만들었다. 함수를 호출할 때 다른 값(예시에서는 string) 과 함께 consoleSuccess 의 값을 result 에 넣어서 출력했다.


  • Assignment

내가 쓴 코드

function meetAt(year, month, day) {
     if (year && month === undefined) {
       return year +"년";
     } else if (year && month && day === undefined) {
       return year + "년 " + month + "월";
     } else {
       return year + "/" + month + "/" + day;
     }
}

meetAt(2020, 10, 10);

year 이 있고, month 가 undefined 일 경우 → year + "년" 리턴

또는 year 이 있고, month가 있고, day 가 undefined 일 경우 → year + "년 " + month + "월" 리턴

위 두가지 중 하나가 아닌 경우에는 → year + "/" + month + "/" + day 리턴

위와같이 논리연산자를 사용해서 코드를 썼는데, 사실 단순히 조건의 순서만 바꾼다면 밑의 코드처럼 간단하게 쓸 수 있다.

더 좋은 예시의 코드

function meetAt(year, month, day) {
  if (year, month, day) {
      return year +"/"+ month+"/" +day
  } 
  else if (year, month) {
    return year + "년 " + month + "월"
  } else if (year) {
    return year + "년"
  }

}

meetAt(2020, 10, 10);


함수와 return

사실 함수는 모두 return을 한다. 함수 body 에 return 이 들어가있지 않은 함수도 볼 수 있는데, 그 경우에도 return이라는 키워드를 생략했을 뿐 함수는 리턴을 한다.

return을 생략하면 함수는 undefined를 반환한다.

( → 함수를 만들었는데 undefined 가 나온다? return 부분에 에러가 있는게 아닌지 체크해보자!)

아래의 예시를 보면, 함수 내부에서 console.log 만 사용했기 때문에 함수를 변수에 담아서 출력했을 때, undefined 가 출력된다.

0개의 댓글