JavaScript
🚨 TypeError: xxx is not a function
関数でないものを呼び出している
😰 こんな症状
コンソールに TypeError: xxx is not a function と表示される。関数でないものを呼び出そうとしたときに起きるよ。
🔍 原因
関数ではないもの(数値、文字列、undefined等)に()を付けて呼び出そうとしているよ。変数名と関数名が同じになっている、関数の定義を忘れている、オブジェクトのメソッド名を間違えている、などが原因だよ。
❌ エラーが起きるコード
const x = 5;
x();
// number は関数ではない ✅ 直し方
1. エラーのxxxの部分を確認し、それがfunctionで定義されているか確認する。 2. console.log(typeof xxx)で"function"と表示されるか確認する。 3. 変数名と関数名が衝突していないか確認する。 4. メソッド名のスペルミスがないか確認する(例: tostring→toString)。
✅ 修正後のコード
const x = () => 5;
x(); // 5 この解決法は役立ちましたか?
🔗 関連するエラー
- Uncaught ReferenceError: xxx is not defined — 変数・関数名のタイポ
- TypeError: undefined is not an object (evaluating 'obj.name') — 存在しないオブジェクトのプロパティにアクセスしている
- Uncaught TypeError: Cannot read properties of null — getElementById の id が存在しない
- 404 Not Found(スクリプトが読み込まれない) — script の src パスが間違っている
- ボタンを押しても何も起きない — getElementById の id 不一致
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説