← エラー辞典に戻る

JavaScript

TypeError: xxx is not a function

関数でないものを呼び出している

こんな症状

コンソールに TypeError: xxx is not a function と表示される。関数でないものを呼び出そうとしたときに起きるよ。

まず試す

エラーの名前が関数として定義されているか、console.log(typeof xxx) が function になるか確認する。

js
// ❌ 数値を呼び出し
const x = 5;
x();

// ✅ 関数として定義
const x2 = () => 5;
x2();

これで直らなければ、下の「自分のケース」を確認。

🔍 自分のケースはどれ?

  • 変数名と関数名が同じ
    → 名前の衝突を解消する(変数が関数を上書きしている)。
  • メソッド名のタイポ
    → 正しいメソッド名にする(例: tostring → toString)。
  • 関数の定義/読み込みを忘れた
    → その関数が定義・import されているか確認する。

なぜ起きる?

関数ではないもの(数値、文字列、undefined等)に()を付けて呼び出そうとしているよ。変数名と関数名が同じになっている、関数の定義を忘れている、オブジェクトのメソッド名を間違えている、などが原因だよ。

✕ エラーが起きるコード
const x = 5;
x();
// number は関数ではない
✓ 直したコード
const x = () => 5;
x(); // 5

✅ 直ったか確認

呼び出しが TypeError なく実行され、関数の結果が返ればOK。

🆘 まだ直らないときは

ライブラリのメソッドなら、バージョン違いでそのメソッドが存在しない場合もある。ドキュメントを確認しよう。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

🔗 別カテゴリの関連エラー

📖 この問題を学べるレッスン

JSレッスン5:関数で根本から理解する →

✏️ 手を動かして練習

このテーマの図解ドリルで実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 JSレッスン5:関数で根本解決しよう!

このエラーの背景にある仕組みを、手を動かしながら学べるレッスンがあります。完全無料・登録不要。

JSレッスン5:関数へ →

❓ 関連するQ&A