실습 문제를 풀다가 콘솔을 찍어보니 new Date()에서의 현재 날짜의 월과 해당 값에서 월만 추출하는 getMonths()의 값이 달랐다.
let date = new Date();
let month = date.getMonth() + 1;
console.log('DATE', date);
console.log('MONTH', month);
let season = '봄';
if (3 <= month && month <= 5) season = '봄';
else if (6 <= month && month <= 8) season = '여름';
else if (9 <= month && month <= 11) season = '가을';
else season = '겨울';
console.log(`${season}입니다.`);
alert(`${season}입니다.`);
getMonths() 값은 현재 월(月)보다 -1인 값이 나오는 현상을 발견했다🤔
찾아보니 JS가 열흘만에 급하게 만든 언어인지라 날짜 표기를 Java JDK1.0(1995) 버전을 카피해오면서 해당 버전에서 채택하는 zero-base를 따르게 된 것이었다.
그래서 특이하게 getMonths()만 제로 베이스로 값을 계산해서 반환하여서 1을 더해줘야 하는 것..!
참고로 자바에서는 해당 날짜 표현 방식에 대한 문제점이 개선되었다고 한다ㅎㅎ
오늘의 궁금증 해결!✨
'WEB > JavaScript' 카테고리의 다른 글
[TIL] JS 변수와 호이스팅 (0) | 2025.05.15 |
---|---|
[자바스크립트] 프로토타입 (0) | 2024.08.03 |
[자바스크립트] 모듈 (0) | 2024.07.31 |
[자바스크립트] 일급 객체 (0) | 2024.07.20 |
[자바스크립트] 클로저 (0) | 2024.07.20 |