Tôi đã mã hóa một hàm để xóa một ngày khỏi giá trị ngày trong javascript và tôi hơi ngạc nhiên khi getMonth () của javascript bắt đầu từ 0 cho tháng 1 đến 11 cho tháng 12. Tại sao getMonth () của javascript bắt đầu bằng 0?
Tôi đã mã hóa một hàm để xóa một ngày khỏi giá trị ngày trong javascript và tôi hơi ngạc nhiên khi getMonth () của javascript bắt đầu từ 0 cho tháng 1 đến 11 cho tháng 12. Tại sao getMonth () của javascript bắt đầu bằng 0?
Câu trả lời:
đoán, để giúp lập chỉ mục thành mảng.
Hãy tưởng tượng bạn có chuỗi hiển thị tháng được lưu trữ trong một mảng và muốn lấy chuỗi chính xác bằng getMonth ()
Tất nhiên, tại sao mảng bắt đầu từ 0 là một câu hỏi khác
Rất có thể vì cuộc gọi thư viện C được gọi để lấy giá trị trả về, trả về tháng theo cách này.
(Và lý do cho thiết kế đó rất có thể là do cuộc gọi thư viện được thiết kế cùng với chương trình để thực sự in ngày, trong đó chỉ mục dựa trên số 0 có thể được sử dụng trực tiếp để in tên tháng)
struct tm
đã làm theo cách đó.