3일차 - Javascript (템플릿 리터럴, 조건문)

Yohan·2024년 2월 22일
0

코딩기록

목록 보기
3/156
post-custom-banner

논리연산자

  • || : 논리합(OR)
    • 앞이 true이면 뒤는 확인X (개발할 때 용이 !)
  • && : 논리곱(AND)
  • ! : 부정(NOT)

재할당이 불가능한 변수(상수)

  • let 키워드가 아닌 const 키워드를 사용하면 재할당이 금지됨!
    -> 그래서 const는 변수 선언과 할당을 한꺼번에 해야함!
// 안좋은 예시
const num; // num 선언
num = 5; // num에 5 할당

// 올바른 예시
const num = 5;
// 

템플릿 리터럴(template literal)

  • 백틱(`)으로 값을 감싸면 문자열(string) 타입을 만드는 것
  • ${}를 사용하여 변수를 삽입
    -> 일반적으로 큰따옴표(”), 작은따옴표(’)을 사용하여 문자열 타입을 만들어내지만 백틱을 이용하면 가독성이 좋게 표현할 수 있음 !
// 일반적인 경우
let course = 'FE';
let cohort = 99;
let name = 'kimcoding';
console.log(course + ' ' + cohort + ' ' + name); // 'FE 99 kimcoding'

// 백틱을 사용한 경우
console.log(`${course} ${cohort} ${name}`); // 'FE 99 kimcoding'

조건문

  • 작은 범위부터 넓은 범위로 조건 설정 !

조건문 연습문제

https://calm-individual-12a.notion.site/Chapter4-14c0330e4e96400489fc901410e2a513?pvs=25

  • 2번
function fizzBuzz(num) {
    if(num % 3 === 0 && num & 5 === 0) {
        return "fizzBuzz";
    } else if (num % 3 === 0) {
        return "fizz";
    } else if (num % 5 === 0) {
        return "buzz";
    } else {
        return "no_fizzbuzz";
    } 
}

let output = fizzBuzz(3);
console.log(output);
  • 3번
function miniCalculator(num1, num2, operator) {
    if (operator === '+') {
        return num1 + num2;
    } else if (operator === '-') {
        return num1 - num2;
    } else if (operator === '*') {
        return num1 * num2;
    } else if (operator === '/') {
        return num1 / num2;
    }
  }

let output = miniCalculator(1, 5,"*");
console.log(output);
  • 4번
function convertScoreToGrade(score) {
    // 예외 범위 조건을 먼저 잡으면 최대 최소범위를 잡고 시작하게 해줌 (0 < score < 100)
    if (score > 100 || score < 0) {
        return 'INVALID SCORE';
    } else if (score >= 90 ) {
        return 'A';
    } else if (score >= 80) {
        return 'B';
    } else if (score >= 70) {
        return 'C';
    } else if (score >= 60) {
        return 'D';
    } else {
        return 'F';
    }

  }

let output = convertScoreToGrade(-1);
console.log(output);
  • 5번
function checkAge(name, age) {
    if (name === "Adrian" && age >= 21) {
        return "Welcome, Adrian!";
    } else if (name === "John" && age < 21) {
        return "Go home, John!";
    } else {
        return 0;
    }
}
let output = checkAge("Adrian", 22);
console.log(output);
  • 6번
function convertScoreToGradeWithPlusAndMinus(score) {
    if (score > 100 || score < 0) {
        return 'INVALID SCORE';
    } else if (score >= 90) {
        if (score >= 98) {
            return 'A+';
        } else if (score === 93) {
            return 'A';
        } else {
            return 'A-';
        }
    } else if (score >= 80) {
        if (score >= 88) {
            return 'B+';
        } else {
            return 'B-';
        }
    } else if (score >= 70) {
        if (score >= 78) {
            return 'C+';
        } else {
            return 'C-';
        }
    } else if (score >= 60) {
        if (score >= 68) {
            return 'D+';
        } else {
            return 'D-';
        }
    } else if (score >= 0) {
        return score;
    }
}

let output1 = convertScoreToGradeWithPlusAndMinus(59);
console.log(output1);
  • 7번
// 작은 단위먼저 거르는 방식
function addOneSecond(hour, minute, second) {
    if (second !== 59) { // 59초가 아닐 때
        second += 1;
        return `1초 뒤에 ${hour}${minute}${second}초 입니다`;
    } else { // 59초일 때
        if(minute === 59 && hour === 23) { // 초 59초, 분 59분, 시 23시
            second = 0;
            minute = 0;
            hour = 0;
            return `1초 뒤에 ${hour}${minute}${second}초 입니다`;
        } else if (minute === 59) { // 초 59초, 분 59분
            second = 0;
            minute = 0;
            hour += 1;
            return `1초 뒤에 ${hour}${minute}${second}초 입니다`;
        } else { // 초만 59초
            second = 0;
            minute += 1;
            return `1초 뒤에 ${hour}${minute}${second}초 입니다`;
        }
    }
}

let output = addOneSecond(23, 59, 59);
console.log(output);

// 1. 초가 59초가 아닐 때
// 2. 초가 59초 일 때
	// 2-1. 초 분 59, 시23
	// 2-2. 초 분 59
	// 2-3 초 59
  • 8번
// 1. 1 < 2 and 1 < 3일때 -> 1
// 2. 2 < 3 and 2 < 1일때 -> 2
// 3. 3 < 2 and 3 < 1일때 -> 3
// 4. 같은 길이일 때 -> 1

function findShortestOfThreeWords(word1, word2, word3) {
  let length1 = word1.length;
  let length2 = word2.length;
  let length3 = word3.length;

  if (length1 < length2 && length1 < length3) {
    return word1;
  } else if (length2 < length3 && length2 < length1) {
    return word2;
  } else if (length3 < length1 && length3 < length2) {
    return word3;
  } else if (length1 === length2 && length2 === length3) {
    return word1;
  }
}
let output = findShortestOfThreeWords("bdsadv", "b", "awef");
console.log(output);
}
  • 9번
// 1. period < 60 -> 분 표기
// 2. period > 60 and period < 1440 -> 60으로 나눠서 몫(시간)만 표기
// 3. period > 1440 -> 1440으로 나눠서 몫(일)만 표기

function makeLastSeenMsg(name, period) {
  if (period < 60) {
    return `${name}: ${period}분 전에 접속함`;
  } else if (period >= 60 && period < 1440) {
    period = Math.floor(period / 60); // 몫
    return `${name}: ${period}시간 전에 접속함`;
  } else {
    period = Math.floor(period / 1440); // 몫
    return `${name}: ${period}일 전에 접속함`;
  }
}
let output = makeLastSeenMsg("mike", 3000);
console.log(output);
profile
백엔드 개발자
post-custom-banner

0개의 댓글