Rumah >hujung hadapan web >tutorial js >Mengapa Objek `Tarikh` JavaScript Menggunakan Pengindeksan Bulan Berasaskan Sifar?

Mengapa Objek `Tarikh` JavaScript Menggunakan Pengindeksan Bulan Berasaskan Sifar?

Barbara Streisand
Barbara Streisandasal
2024-11-28 18:40:11508semak imbas

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

Anomali Sejarah Bulan Berindeks Sifar JavaScript

Apabila membina objek Date baharu dalam JavaScript menggunakan pembina, pemerhatian yang aneh timbul: hujah bulan bermula dari 0. Sisihan daripada penomboran intuitif ini telah membingungkan pembangun untuk beberapa masa.

Walaupun hujah bulan diindeks sifar, hujah hari bulan bermula dari 1. Ketidakkonsistenan ini telah menyemarakkan lagi rasa ingin tahu tentang rasional di sebalik pilihan reka bentuk sedemikian.

Kepada menghapuskan anomali sejarah ini, kami meneroka sejarah sejarah pengaturcaraan:

Keturunan dari Java API Date

Brendan Eich, pencipta JavaScript, mendedahkan di Twitter bahawa dia menggunakan API Tarikh daripada JDK1.0 Java (1995). Ken Smith dari Netscape mengalihkan kelas java.util.Date ke JavaScript, menghasilkan warisan skim pengindeksan bulan pelik ini.

Penyingkiran dalam Java tetapi Ketekunan dalam JavaScript

Java akhirnya menghentikan tingkah laku anomali ini dalam JDK 1.1, memihak kepada pengindeksan berasaskan sifar. Walau bagaimanapun, JavaScript kekal tidak berubah.

Penyelesaian Moden dan Prospek Masa Depan

Walaupun JavaScript tidak mempunyai API tarikh/masa terbina dalam dengan pengindeksan bulan yang diperbetulkan, banyak pihak ketiga perpustakaan seperti Luxon Moment.js, date-fns dan js-joda telah muncul sebagai berdaya maju alternatif.

Di kaki langit adalah cadangan Temporal TC39, yang bertujuan untuk memperkenalkan sistem tarikh/masa yang komprehensif dan moden kepada bahasa tersebut. Jika diterima pakai, JavaScript akhirnya akan terlepas daripada belenggu sejarahnya dan menerima penomboran bulan yang mesra pengguna dan intuitif.

Atas ialah kandungan terperinci Mengapa Objek `Tarikh` JavaScript Menggunakan Pengindeksan Bulan Berasaskan Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn