javascript エラー「Uncaught TypeError: Date(…).getFullYear is not a function」の解決方法

javascript エラー「Uncaught TypeError: Date(…).getFullYear is not a function」の解決方法

javascriptで、エラー「Uncaught TypeError: Date(…).getFullYear is not a function」が発生した場合の原因と解決方法を記述してます。「Date」に「new」演算子を使用せずに「getFullYear」を実行した場合など場合に発生します。「chrome」や「firefox」や「safari」の各ブラウザのエラーメッセージの画像もキャプチャしてます。

環境

  • OS windows11 pro 64bit
  • ブラウザ chrome 107.0.5304.88

エラー内容

以下の、「現在日時」から「年」だけを取得しようとしたコードで発生。
※その他のパターンは後述してます。

const d = Date().getFullYear();

console.log( d );

エラーメッセージ

Uncaught TypeError: Date(...).getFullYear is not a function

画像

firefox106の場合では、以下のエラーが発生します。

Uncaught TypeError: Date().getFullYear is not a function

画像

safari15.5では、以下のエラーとなります。

TypeError: Date().getFullYear is not a function. (In 'Date().getFullYear()', 'Date().getFullYear' is undefined)

画像

原因

「new」演算子が省略されているため

解決方法

「new」演算子を使用する

const d = new Date().getFullYear();

console.log( d ); // 2022

その他のパターン

スペルミス

スペルミスでも同じようなエラーが発生します

const d = new Date().getFullyear(); // ← yが小文字

console.log( d );
// Uncaught TypeError: (intermediate value).getFullyear is not a function

Date.now()を使用

「世界協定時 : 1970年1月1日 0時0分0秒」から現在までの経過した値をミリ秒で返す「Date.now()」を使用しても発生します。

const d = Date.now().getFullyear();

console.log( d );
// Uncaught TypeError: (intermediate value).getFullyear is not a function