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

JavaScript의 `Date` 개체가 0부터 시작하는 월 인덱싱을 사용하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-28 18:40:11512검색

Why Does JavaScript's `Date` Object Use Zero-Based Month Indexing?

JavaScript의 0 인덱스 월의 역사적 이상

생성자를 사용하여 JavaScript에서 새 Date 객체를 생성할 때 특이한 관찰이 발생합니다. 월 인수는 0부터 시작합니다. 직관적인 번호 매기기와의 이러한 편차는 꽤 오랫동안 개발자를 당황하게 했습니다. time.

월 인수의 인덱스가 0임에도 불구하고 월 인수의 날짜는 1부터 시작합니다. 이러한 불일치로 인해 이러한 디자인 선택의 근거에 대한 호기심이 더욱 커졌습니다.

이 역사적 변칙성을 풀고 프로그래밍 역사의 연대기로 모험을 떠납니다:

Java's Date의 계보 API

JavaScript 창시자인 Brendan Eich는 Twitter를 통해 Java의 JDK1.0(1995)에서 Date API를 채택했다고 밝혔습니다. Netscape의 Ken Smith는 java.util.Date 클래스를 JavaScript로 포팅하여 이 독특한 월 색인 구성표를 상속했습니다.

Java에서는 지원 중단되었지만 JavaScript에서는 지속성

Java는 결국 JDK 1.1에서 이러한 비정상적인 동작을 더 이상 사용하지 않으며 0부터 시작하는 인덱싱을 선호합니다. 그러나 JavaScript는 변경되지 않았습니다.

최신 솔루션 및 향후 전망

JavaScript에는 수정된 월 인덱싱 기능을 갖춘 내장 날짜/시간 API가 없지만 수많은 타사 Luxon Moment.js, date-fns 및 js-joda와 같은 라이브러리가 실행 가능한 것으로 나타났습니다. 대안.

언어에 포괄적이고 현대적인 날짜/시간 시스템을 도입하는 것을 목표로 하는 TC39 임시 제안이 곧 다가오고 있습니다. 채택된다면 JavaScript는 마침내 역사적 기이함의 족쇄에서 벗어나 사용자 친화적이고 직관적인 월 번호 매기기 방식을 채택하게 될 것입니다.

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

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