JavaScript의 날짜 생성자에서 월 불일치 탐색
JavaScript에서 날짜 작업을 할 때 월이 색인화되는 방식의 특이성을 이해하는 것이 중요합니다. Mozilla Firefox Firebug에 대한 최근 쿼리는 우려를 불러일으켰습니다.
var myDate = new Date(2012, 9, 23, 0, 0, 0, 0); console.log(myDate);
출력:
Date {Tue Oct 23 2012 00:00:00 GMT-0400 (Eastern Daylight Time)}
이 불일치를 조사한 결과 사용자는 예상치 못한 결과를 발견했습니다. JavaScript는 날짜가 아닌 10월을 반환했습니다. 9월, 의도한 대로.
진실 밝히기: 0부터 시작하는 인덱싱
핵심은 JavaScript의 Date 생성자가 몇 달 동안 사용하는 0부터 시작하는 인덱싱에 있습니다. 이 인덱싱 방식에서 월은 1월을 0으로 시작하고 11은 12월을 나타냅니다. 따라서 생성자(9)에 전달된 월 인덱스는 실제로 9월이 아닌 10월에 해당합니다.
참조를 통해 명확하게 설명:
MDN(Mozilla 개발자 네트워크)은 명시적인 지침을 제공합니다.
month: Integer value representing the month, beginning with 0 for January to 11 for December.
또한 ECMAScript 언어 사양은 기술적인 통찰력을 제공합니다.
7. Let mn be ?(ℝ(m) modulo 12).
이 줄은 월 입력이 12로 모듈로 연산을 수행하여 효과적으로 월 인덱스를 0 범위 내로 래핑한다는 것을 설명합니다.
따라서 JavaScript로 날짜를 구성할 때 혼란이나 예상치 못한 결과를 피하기 위해 월의 인덱스는 0이라는 점을 기억하는 것이 중요합니다.
위 내용은 해당 월에 9를 제공하면 JavaScript의 날짜 생성자가 10월을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!