lflov

헷갈렸던 문제 1 - 만 나이 계산하기 본문

JavaScript

헷갈렸던 문제 1 - 만 나이 계산하기

마젠토브힘내부왕 2022. 9. 23. 18:38

참 한국나이의 순기능이 있다는거에 참으로 놀라운 순간이었다.

 

바로 이문제를 풀때 그런 생각이 들었따 

 

문제 들어간다

 

Date 객체인 birthday를 매개변수로 받는 함수 getWesternAge를 완성해라

 

여기서 만나이와 한국나이의 차이점을 알아보자

 

한국나이 : 현재 해 - 태어난 해 (2022 - 1995 = 28짤)

 

만 나이 : 생일이 지나면 한살 먹는다 태어날땐 0살이다

 

이걸 한번더 머리에 각인시키고 어떻게 코딩했는지 알아보자

 

function getWesternAge(birthday) {

  //date 객체 선언
  let wow = new Date(birthday);
  let now = new Date();
  // 생일 년 월 일
  let birthYear = wow.getFullYear();
  let birthMonth = wow.getMonth();
  let birthDay = wow.getDate();
  // 현재 년 월 일 
  let nowYear = now.getFullYear();
  let nowMonth = now.getMonth();
  let nowDay = now.getDate();

  let korAge = nowYear - birthYear;

  if ((nowMonth - birthMonth > 0) || (nowMonth === birthMonth && nowDay - birthDay > 0)) {
    korAge;
  } else {

    --korAge;
  }
  console.log(korAge);
  return korAge;
}

 

딱 저생각 그대로를 코딩한거같다 하하하

여기서 애매했던 부분 첫번째

 

let wow = new Date(birthday);

 

이부분인데 왜 Date() 괄호 안에 birthday가 들어갔을까? 기억이 안난다 알아보자

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date/Date

 

Date() 생성자 - JavaScript | MDN

Date 생성자는 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성합니다. Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 UNIX

developer.mozilla.org

 

위 링크에서 보면 

let wow = new Date(xxxxx); 

Date안에 xxx의 값을 가진 Date 객체로 만들어준다!

 

괄호 안에 아무것도 없으면 현재 시점을 기준으로 객체를 만든다.

 

둘째 korAge -1 과 korAge-- 의 차이를 알아보자아

 

일단 알아야하는것은 증감 연산자이다.

 

증감연산자 중 

 

전위 연산자는 출력 전에 연산되고 

후위 연산자는 출력 후에 연산됩니다!

 

꼭 기억하세요!!

 

오늘 베운거 

 

Date() 객체를 만들면 현재 시간을 기준으로 Date객체를 만들고, 괄호 안에 값을 넣으면 해당 시간에 Date객체가 생성된다

증감 연산자 중 출력전에 연산을 하려면 전위 연산자를 사용해야한다를 배웠습니다!

 

 

 

'JavaScript' 카테고리의 다른 글

Arrow Function  (1) 2022.09.25
Javascript Recap - 1  (2) 2022.09.25
객체의 접근 및 순회  (0) 2022.09.22
Wecode Javascript Replit 29번 map  (0) 2022.09.22
Javascript 16 . AJAX 와 JSON  (0) 2022.08.20