다음과 같은 함수를 구현해봅시다.
- 첫번째 인자는 년도에 해당하는 숫자입니다.
- 두번째 인자는 월에 해당하는 숫자입니다.
- 세번째 인자는 일에 해당하는 숫자입니다.
- 년도 인자만 받았을 경우 → "1234년" 과 같은 형식의 문자열을 리턴 해주세요.
- 년도,월 인자를 받았을 경우 → 년도와 월을 조합해서 "1234년 5월" 과 같은 형식의 문자열을 리턴 해주세요.
- 년도,월,일 인자를 전부 받았을 경우 → 년도,월,일을 조합해서 "1234/5/6" 과 같은 형식의 문자열을 리턴 해주세요.
meetAt(2022); // 결과 --> "2022년"
meetAt(2032, 3); // 결과 --> "2032년 3월"
meetAt(1987, 10, 28); // 결과 --> "1987/10/28"
구현 코드
function meetAt(year, month, date) {
if (date) {
return year + "/" + month + "/" + date;
} else if (month) {
return year + "년 " + month + "월";
} else if (year) {
return year + "년";
}
}
meetAt(2017);
meetAt(2019, 10);
meetAt(2021, 2, 28);
질문
- 왜 date 조건식부터 작성하는가?
- 조건문 작성 시 세 개의 인자를 전부 명시하지 않아도 되는가?
KEY
- year-month-date 순으로 조건식을 작성할 경우, 인자가 하나만 들어와도 첫 번째 조건식(인자가 year인)에서 항상 true가 나와 무조건 조건식을 만족하고 함수가 종료되므로, 마지막 인자부터 조건식을 작성해야 한다.
- if (date), 즉, 첫 번째 조건문에서 date값을 못 찾았다면(세 번째 인자가 들어오지 않음), false가 되므로 다음 조건문으로 넘어간다. date 인자 값을 찾았다면 코드 블록인 return year + "/" + month + "/" + date; 가 실행.
다음 조건문에서도 마찬가지로 month 인자값을 찾지 못했다면, 마지막 조건문이 실행되는 것.