점수를 입력받아 점수에 해당하는 등급을 리턴
'INVALID SCORE'
를 리턴function convertScoreToGradeWithPlusAndMinus(score) {
1. 각 점수별로 grade를 지정해준다.
let grade = '';
if (score > 100 || score < 0) {
return 'INVALID SCORE';
} else if (score === 100) {
return 'A+';
} else if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else {
grade = 'F';
}
2. grade 뒤에 붙는 기호를 지정해준다.
1의 자리에 따라 기호가 다르게 들어가므로 두자릿수의 score를 10으로 나눠준다.
let sign = '';
let unitsdigit = score % 10;
if (unitsdigit >= 8 && unitsdigit <= 9) {
sign = '+';
} else if (unitsdigit >= 0 && unitsdigit <= 2) {
sign = '-';
} else {
sign = '';
}
3. 'F'를 제외한 나머지 grade에 sign을 더해준다.
이후 최종 grade 값을 리턴해준다.
if (grade !== 'F') {
grade = grade + sign;
}
return grade;
}
시, 분, 초를 입력받아 1초를 더한 결과값을 특정 형태의 메시지로 리턴
string
타입을 리턴1초 뒤에 {hour}시 {minute}분 {second}초 입니다
형식으로 리턴function addOneSecond(hour, minute, second) {
1. 초(second)의 경우
59초인 경우, 1분이 더해지면서 초는 0으로 초기화된다.
59초가 아닌 경우, 1초가 늘어난다.
if (second === 59) {
minute = minute + 1;
second = 0;
} else {
second = second + 1;
}
2. 분(minute)의 경우
60분이 되면 1시간이 더해지면서 분은 0으로 초기화된다.
if (minute === 60) {
hour = hour + 1;
minute = 0;
}
3. 시간(hour)의 경우
24시가 되면 시는 0으로 초기화된다.
if (hour === 24) {
hour = 0;
}
4. Template literal을 이용하여 문자열을 리턴해준다.
return `1초 뒤에 ${hour}시 ${minute}분 ${second}초 입니다`;
}
임의의 값을 입력받아 falsy 값인지 여부를 리턴
function isFalsy(anything) {
1. 조건문 속 값이 falsy할 경우 true가 출력된다.
if (anything === 0 || anything === undefined || Number.isNaN(anything) || anything === '') {
return true;
}
return false;
}
2. Number.isNaN() → 주어진 값이 NaN인지 판별한다.
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true