ホーム ›
エラー解決 › JavaScript › is not a function
JavaScript ERROR
JavaScript x is not a function の解決法
関数でないものを関数として呼び出したときのエラーです。メソッド名の間違いが多いです。
このエラーメッセージ
TypeError: nums.push is not a function
原因
- メソッド名のスペルミス
- 対象が想定した型ではない(配列だと思ったら文字列だった等)
- 同名の変数で関数を上書きしている
❌ エラーになるコード
NG
const text = "hello";
text.push("!");
✅ 修正したコード
OK
const arr = ["hello"];
arr.push("!"); // 配列にはpushがある
console.log(arr);
// 文字列を伸ばすなら + や concat
let text = "hello";
text = text + "!";
console.log(text);
▶ 修正済みコードを実行エディタで開く
progoのJavaScript実行環境(インストール不要・登録不要)でその場で動作を確認できます。
解決のポイント
呼び出そうとしているメソッドが、その型に存在するかを確認します。pushは配列のメソッドで、文字列にはありません。typeofやArray.isArray()で型を確認すると原因が見えます。
よくある質問
map is not a functionと出る
対象が配列でない可能性があります。Array.from()やスプレッドで配列化してください。
自作関数がnot a functionになる
同名の変数で関数を上書きしていないか、定義順を確認します。