JavaScript - 문제 미리보기

문제 684

hard
다음 코드의 실행 결과에 대한 설명으로 올바른 것은? ```javascript const d = new Date("January 01, 2025"); d.setFullYear(2020, 11, 3); const today = new Date(); const future = new Date(); future.setFullYear(2100, 0, 14); if (future > today) { console.log("미래 날짜입니다."); } else { console.log("과거 날짜입니다."); } ```
A. `d`는 2020년 11월 3일이 되고, 비교문은 항상 "과거 날짜입니다." 출력
B. `d`는 2020년 12월 3일이 되고, 비교문은 "미래 날짜입니다." 출력
C. `setFullYear()` 메서드는 월과 일을 동시에 설정할 수 없어 오류 발생
D. Date 객체끼리 직접 비교할 수 없어 오류 발생

정답: B

이 문제는 여러 Date 메서드의 복합적 이해를 요구합니다: 1. `setFullYear()` 메서드 분석: 1) `setFullYear(2020, 11, 3)`는 연도, 월, 일을 한 번에 설정할 수 있습니다 2) 월은 0부터 시작하므로 11은 12월을 의미합니다 3) 따라서 `d`는 2020년 12월 3일이 됩니다 2. Date 객체 비교: 1) JavaScript에서 Date 객체는 직접 비교 연산자(`>`, `<`, `>=`, `<=`)를 사용할 수 있습니다 2) 내부적으로 밀리초 값으로 변환되어 비교됩니다 3) `future.setFullYear(2100, 0, 14)`는 2100년 1월 14일로 설정 4) 현재 날짜(2025년)보다 미래이므로 "미래 날짜입니다."가 출력됩니다 이처럼 `setFullYear()` 메서드는 매우 유연하며, Date 객체의 비교는 자연스럽게 동작합니다.

💡 학습 팁

이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.