ホーム › エラー解決 › 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になる
同名の変数で関数を上書きしていないか、定義順を確認します。