조건?
meetAt(2022); // 결과 --> "2022년"
meetAt(2032, 3); // 결과 --> "2032년 3월"
meetAt(1987, 10, 28); // 결과 --> "1987/10/28"
의 결과값을 만들어라.
왜 year, month, date 인데 year 부터 if문을 안적고
date부터 적었는지 궁금했다.
function meetAt(year, month, date) {
if(date) {
return year + "/" + month + "/" +date
}
if(month) {
return year + "년 " + month + "월"
}
if(year) {
return year + "년"
}
}
console.log(meetAt(2022, 5))
console.log(meetAt(2020,3,25))
console.log(meetAt(2020))
우선 meetat함수에서 년 월 일의 매개변수를 받는다.
인자한개면 = 2022년, 인자두개면 = 2022년 3월, 인자세개면 = 2022/3/4
이런식으로 문자를 리턴한다.
일단 여기서 알아야할 것은 조건문이란것은
if(조건)이 실행하면 = 1 / 즉, true 다 라는것이 중요하다.
만약 meetat 함수에 인자 3개가 들어있다고 가정해보고,
(2022, 3, 4) 라는 값이 들어있으면
처음부터 if문을 year(인자한개)로 받는다고 조건을 걸면
그 조건이 거짓(false)이고, 인자가 여러개 있어도 한개만 받는걸로 조건이 끝나버린다.
우리는 2022/3/4 라는 결과값을 만들고 싶은데
2022년에서 조건이 끝나버리고 만다.
간단히말해 인자가 (1,2,3) 이라고 되어있다고 가정하면
우리가 원하는 값은 1/2/3이라는 값이지만 (year)가 맨 위에있으면
1년 이라는 값만 출력된다는 것이다.
그럼 month를 첫번째로 넣어보면?
마찬가지다. month는 두개의 인자를 받고 (1, 2)
세번째 3라는 매개변수는 받을 수 없는 것이다.
결국엔 인자가 한개든 두개든 세개든 어떤인자가와도 컴퓨터에 인식된것은
return year + "년" 이기때문에 첫번째로 오는 매개변수만
충족시키는 것이다.
'알고리즘' 카테고리의 다른 글
[알고리즘 문제] Array (배열) (0) | 2022.03.14 |
---|---|
[알고리즘 문제] Function(함수) - 데이터 반환하기(2) (0) | 2022.03.14 |
[알고리즘 문제] Function(함수) - parameter, argument (0) | 2022.03.13 |
[알고리즘 문제] function (함수) - 데이터받기 (0) | 2022.03.13 |
[알고리즘 문제] object (3) (0) | 2022.03.07 |