ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「Date」オブジェクトがゼロから始まる月のインデックスを使用するのはなぜですか?

JavaScript の「Date」オブジェクトがゼロから始まる月のインデックスを使用するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 18:40:11522ブラウズ

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

JavaScript のインデックスがゼロの月の歴史的異常

コンストラクターを使用して JavaScript で新しい Date オブジェクトを構築するときに、奇妙な観察が発生します。 month 引数は 0 から始まります。この直感的な番号付けからの逸脱により、開発者はかなり困惑しています。 time.

月引数のインデックスは 0 であるにもかかわらず、月の日引数は 1 から始まります。この矛盾により、このような設計選択の背後にある理論的根拠についての好奇心がさらに高まりました。

Toこの歴史的な異常性を解明し、プログラミングの歴史の年代記に踏み込みます:

Java の日付からの系統API

JavaScript の作成者である Brendan Aich は、Java の JDK1.0 (1995) から Date API を採用したことを Twitter で明らかにしました。 Netscape の Ken Smith は java.util.Date クラスを JavaScript に移植し、その結果、この独特の月のインデックス付けスキームが継承されました。

Java では非推奨ですが、JavaScript では永続化

Java は最終的に、JDK 1.1 でこの異常な動作を非推奨にし、ゼロベースのインデックス作成を推奨しました。ただし、JavaScript は変更されていません。

最新のソリューションと将来の展望

JavaScript には、修正された月のインデックスを備えた組み込みの日付/時刻 API がありませんが、多数のサードパーティがLuxon Moment.js、date-fns、js-joda などのライブラリが実行可能なものとして浮上しています。

包括的で最新の日付/時刻システムを言語に導入することを目的とした TC39 Temporal 提案が目前に迫っています。採用されれば、JavaScript はついにその歴史的な癖の束縛から逃れ、ユーザーフレンドリーで直感的な月番号を採用することになります。

以上がJavaScript の「Date」オブジェクトがゼロから始まる月のインデックスを使用するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。