Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
JavaScript の例外 "is not a function" は、値を関数として呼び出そうとしたが、その値が実際には関数ではなかった場合に発生します。
関数でないものを、関数呼び出ししようとした際に発生するエラーです。また適切な関数が定義されていることを期待されているが、定義されていない場合も発生します。
関数名にタイプミスがないでしょうか?あるいは、メソッドを呼び出そうとしているオブジェクトが、その関数を持っていないのではないでしょうか? 例えば、JavaScript の Object オブジェクトには map 関数はありませんが、Array オブジェクトにはあります。
多くの組み込み関数はコールバック関数を必要とします。これらのメソッドを正しく呼び出すためには、関数を引数に指定する必要があります。
Array もしくは TypedArray オブジェクトを操作する場合:
次のように関数名を間違えている場合に発生します。なおこのミスは非常に多く発生します。
正しい関数名は getElementById です。
いくつかのメソッドは、引数に関数が指定されていることを期待していて、しかも特定のオブジェクトの上でのみ正しく動作するものがあります。この典型例が Array.prototype.map() で、これは Array オブジェクトでのみ正しく動作します。
オブジェクトではなく、配列を利用しましょう。
クラスを作るとき、プロパティと関数が同じ名前になることがあります。関数を呼び出すと、コンパイラーは関数が存在するのをやめたように考えます。
代わりに異なるプロパティ名を使ってください。
数学では、 2 × (3 + 5) を 2*(3 + 5) または単に 2(3 + 5) と書くことができます。
後者を使用するとエラーが発生します。
このコードは * 演算子を追加すると修正できます。
正しくモジュールをインポートしていることを確認してください。
helpers ライブラリーの例 (helpers.js)
正しい import の使い方 (App.js):
This page was last modified on 2026年4月18日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.