이전 시간에는 데이터를 받는 함수에 대해 알아보았습니다. 이번 시간에는 return
(리턴, 반환) 해주는 함수에 대해 알아보겠습니다.
return
이라는 것은 함수를 호출했을 때, 함수가 값을 반환한다는 뜻입니다.
function multiplyTen(myNumber) {
return 10 * myNumber;
}
위의 multiplyTen
함수의 정의 → 받은 인자에 10을 곱하여 반환한다!
함수를 호출해야겠죠! 아래와 같이 여러번 호출할 수 있습니다.
multiplyTen(3);
multiplyTen(6);
multiplyTen(12);
호출은 했지만, 어떤 값을 리턴했는지 알 길이 없습니다. 즉, 호출된 함수의 return
값을 변수에 저장하는 수밖에 없습니다. 아래와 같이 함수의 반환을 변수에 저장해서 console
로 확인해볼 수 있습니다.
let result1 = multiplyTen(3);
let result2 = multiplyTen(6);
let result3 = multiplyTen(12);
console.log(result1);
console.log(result2);
console.log(result3);
변수에 저장하기 귀찮다면, 결과값을 바로 console
로 확인해도 됩니다.
console.log(multiplyTen(0));
console.log(multiplyTen(3));
console.log(multiplyTen(2));
사실 함수는 모두 return
을 합니다. '음.. 아닌데' 하고 생각이 드셨을 수도 있습니다. 분명 return
이 없는 함수를 보신 적이 있을테니까요. 그 경우에도 return이라는 키워드를 생략했을 뿐 함수는 리턴을 합니다. return
을 생략하면 함수는 undefined
를 반환합니다.
function consoleSuccess(month, name) {
console.log(month, name);
}
let result = consoleSuccess("3", "김개발"); // 함수를 호출한 결과를 result에 담아서
console.log("consoleSuccess 호출 값은" + result); // 어떤 값이 리턴 되는지 직접 확인해보세요
조금만 더 복잡하게 함수를 사용해보겠습니다.
function getTax(price) {
return price * 0.1;
}
function calculateTotal(price) {
return price + getTax(price);
}
const result = calculateTotal(3500);
console.log(result);
이렇게 함수 안에서 또 함수를 호출할 수도 있습니다. calculateTotal
함수 내부에서 getTax
를 또 호출했습니다. 함수가 실행되는 시점은 함수를 호출하는 순간이겠죠? 위 코드에서 function
으로 함수를 선언하는 부분은 "이런 함수가 있다"고 선언해준 것 뿐입니다. 함수가 실행되는 시점은 바로 calculateTotal(3500)
으로 호출 했을 때 입니다.
getTotal
함수를 만들어주세요. getTotal
함수는 가격을 2개 받아서 calculateTotal 호출 반환값을 더해서 리턴하는 함수입니다.
getTotal
이라는 이름의 함수를 만들어주세요. 가격정보 2개를 인자로 받습니다.getTotal
함수에서 인자로 받은 가격으로 각각 calculateTotal
함수를 호출해주세요. 그리고 그 결과값을 더해서 반환해주세요.참고사항
getTax
함수는 가격의 tax를 구하는 함수입니다.calculateTotal
함수는 상품의 가격에 tax를 더한 값을 구하는 함수입니다.getTotal
함수는 두 상품의 가격을 더해서 반환하는 함수입니다.
//assignment
function getTotal(price1, price2) {
return calculateTotal(price1) + calculateTotal(price2);
}