Rumah > hujung hadapan web > tutorial js > Mengapakah Pembina `Tarikh` JavaScript Menggunakan Bulan Berasaskan Sifar?

Mengapakah Pembina `Tarikh` JavaScript Menggunakan Bulan Berasaskan Sifar?

Barbara Streisand
Lepaskan: 2024-12-01 07:43:10
asal
916 orang telah melayarinya

Why Does JavaScript's `Date` Constructor Use a Zero-Based Month?

Pembina Tarikh JavaScript: Membongkar Argumen Bulan Berasaskan Sifar

Apabila mencipta objek Tarikh JavaScript, anda mungkin perasan bahawa argumen bulan bermula dari 0 dan bukannya 1. Keanehan ini boleh menyebabkan kekeliruan, terutamanya kerana hujah hari bulan adalah berdasarkan 1. Mengapakah percanggahan ini wujud, dan adakah terdapat sebab logik di sebaliknya?

Jawapannya terletak pada evolusi sejarah pembina Tarikh JavaScript. Seperti yang dijelaskan oleh Brendan Eich, pencipta JavaScript di Twitter, Tarikh JavaScript diilhamkan oleh java.util.Date Java, yang juga menggunakan sistem bulan berasaskan sifar.

Pada asalnya, JavaScript bertujuan untuk meniru API Java untuk memudahkan keserasian merentas bahasa. Malangnya, ini bermakna mewarisi kebiasaan seperti hujah bulan berasaskan sifar. Ken Smith dari Netscape membantu memindahkan kod Java ke C untuk pelaksanaan JavaScript.

Walaupun pilihan reka bentuk awal, pembangun telah lama mengiktiraf kesulitan sistem berasaskan sifar ini. Kelas java.util.Calendar yang diperkenalkan dalam Java 1.1 menyediakan API tarikh/masa yang lebih baik, tetapi ia masih mengekalkan konvensyen bulan berasaskan sifar.

JavaScript tidak mempunyai API tarikh/masa terbina dalam yang mantap, meninggalkan pembangun untuk bergantung pada perpustakaan pihak ketiga seperti Luxon, Moment.js dan date-fns. Pustaka ini menangani batasan objek Date dan menyediakan pengendalian tarikh yang lebih intuitif.

Cadangan Temporal TC39 bertujuan untuk menangani kekurangan ini dengan memperkenalkan API tarikh/masa moden ke dalam JavaScript. Cadangan ini, jika dilaksanakan, akan membawa pengendalian tarikh JavaScript dikemas kini dengan amalan terbaik semasa, memberikan pendekatan yang lebih konsisten dan mesra pengguna.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan