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!