1. ホーム
  2. javascript

[解決済み] オブジェクトが日付であるかどうかを確認するには?

2022-03-23 06:22:59

質問

Webページで迷惑なバグが発生しています。

<ブロッククオート

date.GetMonth()は関数ではありません。

ということは、私のやり方が間違っているのでしょう。変数 date のオブジェクトではありません。 Date . Javascriptでdatatypeを確認するにはどうすればよいですか? を追加しようとしたのですが if (date) が、うまくいきません。

function getFormatedDate(date) {
    if (date) {
       var month = date.GetMonth();
    }
}

では、防御的なコードを書いて、日付(1つではない)が整形されないようにしたい場合、どうすればいいのでしょうか?

ありがとうございます。

UPDATE 日付の書式を確認したいのではなく、メソッドに渡されたパラメータが getFormatedDate() は型 Date .

解決方法は?

によるダックタイピングの代替手段として

typeof date.getMonth === 'function'

を使用することができます。 instanceof 演算子ですが、無効な日付に対しても真を返します。 new Date('random_string') もDateのインスタンスです。

date instanceof Date

フレーム境界を越えてオブジェクトが渡された場合、失敗します。

これを回避するためには、オブジェクトのクラスを

Object.prototype.toString.call(date) === '[object Date]'