JavaScript - 문제 미리보기

문제 679

hard
다음 코드의 실행 결과에 대한 설명으로 올바른 것은?

```javascript
const d = new Date("2021-03-25T15:30:45");

console.log(d.getHours()); // 결과 A
console.log(d.getUTCHours()); // 결과 B
console.log(d.getTimezoneOffset()); // 결과 C

const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
console.log(months[d.getMonth()]); // 결과 D
```
A. A와 B는 항상 같은 값, C는 0, D는 "March"
B. A는 로컬 시간, B는 UTC 시간으로 다를 수 있고, C는 시간대 차이(분), D는 "Mar"
C. A는 15, B도 15, C는 시간대 정보 없음, D는 3
D. 모든 get 메서드는 UTC 기준으로 동일한 값 반환

정답: B

이 문제는 로컬 시간과 UTC 시간의 차이를 다룹니다:

1) `getHours()`: 로컬 시간대의 시간을 반환 (한국은 UTC+9이므로 실제로는 24시간 또는 0시간이 될 수 있음)
2) `getUTCHours()`: UTC 시간 기준의 시간을 반환 (15시간)
3) `getTimezoneOffset()`: 로컬 시간과 UTC 시간의 차이를 분 단위로 반환 (한국의 경우 -540분, 즉 -9시간)
4) 월 이름 배열 활용: `getMonth()`는 2를 반환하므로 배열의 인덱스 2인 "Mar"가 출력됩니다.

시간대가 다른 환경에서는 로컬 시간 메서드와 UTC 시간 메서드의 결과가 다를 수 있다는 점이 핵심입니다.

💡 학습 팁

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