알고리즘_2016년

charlie_·2021년 9월 8일
0

오늘의 문제

2016년

풀이

function solution(a, b) {
  let date = new Date(`${a} ${b}, 2016`).getDay();
 
  switch (date) {
    case 0 : 
      return 'SUN';
      break;
    case 1 : 
      return 'MON';
      break;      
    case 2 : 
      return 'TUE';
      break;
    case 3 : 
      return 'WED';
      break;
    case 4 : 
      return 'THU';
      break;
    case 5 : 
      return 'FRI';
      break;
    case 6 : 
      return 'SAT';
      break;
  }
}

과정

let date = new Date(`${a} ${b}, 2016`);
VSC에서 console.log로 찍어봤을 때와 runJS에서 console.log로 찍었을 때 나오는 생김새가 다르길래 호기심이 생겨서 겸사겸사 반환값의 타입을 확인해봤다.

  • VSC

  • runJS

당연히 문자열일거라고 생각했는데, 찾아보니 참조형 데이터타입 중 하나인 Date 객체 타입이었다. new operator는 그동안 종종 사용해왔기에 분명 객체 타입의 인스턴스를 생성한다는 것을 알고 있었다. 섣불리 문자열이라고 판단한 이유에 대해 고민해보니 Date 메소드와 헷갈렸다는 결론이 나왔다. 그래서 리팩토링을 할 때는 Date 메소드를 사용해봤더니 훨씬 깔끔하게 코드를 작성할 수 있었다.

  let date = Date();
  date.slice(0, 3).toUpperCase();
profile
매일 하루에 딱 한 걸음만

0개의 댓글