TIL 26 | JavaScript replit 13. 여러 인자 받기

ym j·2021년 4월 14일
0

JavaScript

목록 보기
1/7
post-thumbnail

JavaScript replit 13

Assignment

index.js에서 meetAt 함수를 만들어주세요.

  • 인자를 세개 받습니다.
    1. 첫번째 인자는 년도에 해당하는 숫자입니다.
    2. 두번째 인자는 월에 해당하는 숫자입니다.
    3. 세번째 인자는 일에 해당하는 숫자입니다.
  • 년도 인자만 받았을 경우 → "1234년" 과 같은 형식의 문자열을 리턴 해주세요.
  • 년도,월 인자를 받았을 경우 → 년도와 월을 조합해서 "1234년 5월" 과 같은 형식의 문자열을 리턴 해주세요.
  • 년도,월,일 인자를 전부 받았을 경우 → 년도,월,일을 조합해서 "1234/5/6" 과 같은 형식의 문자열을 리턴 해주세요.
meetAt(2022); // 결과 --> "2022년"
meetAt(2032, 3); // 결과 --> "2032년 3월"
meetAt(1987, 10, 28); // 결과 --> "1987/10/28"


Code

function meetAt(year, month, date) {
  if(date){
    return `${year}/${month}/${date}`
  }
  if(month){
    return `${year}${month}`
  }
  if(year){
    return `${year}`
  }
}				//meetAt(2021, 4, 14)  '2021/4/14'
				//meetAt(2021, 4)      '2021년 4월'
				//meetAt(2021)         '2021년'
  • 코드를 작성하면서 들었던 의문점은 if가 매개 변수 순서대로인 year, month, date 순이 아닌, 왜 역방향인 date, month, year인지였다. 그 답은 바로 return 때문이었다.
// 처음 생각했던 방법
function meetAt(year, month, date) {
  if (year) {                                  
    return `${year}`;  // <--- year 이외 어떠한 인자가 오더라도 이 부분에서 모두 리턴이 되버린다.
  }
  if (month) {
    return `${year}${month}`;		
  }
  if (date) {
    return `${year}/${month}/${date}`;
  }
}				//meetAt(2021, 4, 14)  '2021년'
				//meetAt(2021, 4)      '2021년'
				//meetAt(2021)         '2021년'
  • 자바스크립트의 함수 안에서 return을 만나게 될 경우, 해당 함수는 그 즉시 함수를 종료하고 해당 값을 반환한다. 처음 생각했던 방법인 위 함수에서는 한개 이상의 인자, year 이외 또다른 month, date의 변수가 오더라도 return되어 함수가 종료된다. 때문에 결과 값은 00년만 뜨게 된다.
profile
블로그를 이전하였습니다 => "https://jymini.tistory.com"

0개의 댓글