>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 `Date` 생성자가 0부터 시작하는 월을 사용하는 이유는 무엇입니까?

JavaScript의 `Date` 생성자가 0부터 시작하는 월을 사용하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-01 07:43:10908검색

Why Does JavaScript's `Date` Constructor Use a Zero-Based Month?

JavaScript 날짜 생성자: 0 기반 월 인수 공개

JavaScript Date 객체를 생성할 때 월 인수가 1 대신 0부터 시작합니다. 특히 월 인수가 1을 기반으로 하기 때문에 이러한 특이성은 혼란을 초래할 수 있습니다. 불일치가 존재하며 그 뒤에 논리적인 이유가 있습니까?

답은 JavaScript Date 생성자의 역사적 발전에 있습니다. JavaScript 창시자인 Brendan Eich가 트위터에서 설명했듯이 JavaScript의 Date는 0부터 시작하는 월 시스템을 사용하는 Java의 java.util.Date에서 영감을 받았습니다.

원래 JavaScript의 목적은 Java의 API를 에뮬레이트하는 것이었습니다. 언어 간 호환성을 촉진합니다. 불행하게도 이는 0부터 시작하는 월 인수와 같은 특이한 점을 상속받는 것을 의미했습니다. Netscape의 Ken Smith는 JavaScript 구현을 위해 Java 코드를 C로 포팅하는 데 도움을 주었습니다.

초기 디자인 선택에도 불구하고 개발자들은 이 0 기반 시스템의 불편함을 오랫동안 인식해 왔습니다. Java 1.1에 도입된 java.util.Calendar 클래스는 더 나은 날짜/시간 API를 제공했지만 여전히 0부터 시작하는 월 규칙을 유지했습니다.

JavaScript에는 강력한 내장 날짜/시간 API가 부족했습니다. 개발자는 Luxon, Moment.js 및 date-fns와 같은 타사 라이브러리에 의존해야 합니다. 이러한 라이브러리는 Date 객체의 한계를 해결하고 보다 직관적인 날짜 처리를 제공합니다.

TC39 임시 제안은 JavaScript에 최신 날짜/시간 API를 도입하여 이러한 결함을 해결하는 것을 목표로 합니다. 이 제안이 구현된다면 JavaScript의 날짜 처리 기능이 최신 모범 사례로 업데이트되어 더욱 일관되고 사용자 친화적인 접근 방식이 제공될 것입니다.

위 내용은 JavaScript의 `Date` 생성자가 0부터 시작하는 월을 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.