Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】TypeError: can't assign to property "x" on "y": not an objectエラーの使い方

TypeError: can't assign to property "x" on "y": not an objectエラーの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

TypeError: can't assign to property "x" on "y": not an objectオブジェクトは、プログラムがオブジェクトではない値に対して新しいプロパティを割り当てようとしたときに発生するエラーを表すオブジェクトです。

このエラーは、"y"で示される値がオブジェクト(JavaScriptにおける広義のオブジェクト、例えば配列やユーザー定義オブジェクトなど)ではないにも関わらず、その値に対して"x"で示されるプロパティを設定しようとした場合に通知されます。例えば、nullundefined、数値、文字列、真偽値などのプリミティブ型は、直接プロパティを持つことができません。プログラム内でオブジェクトを期待している変数が、実際にはnullundefinedである場合や、関数の戻り値がプリミティブ型であるにもかかわらず、その結果に対してプロパティを代入しようとした場合にこのエラーが発生します。

このエラーに遭遇した場合は、プロパティを割り当てようとしている変数や式の評価結果が、本当にオブジェクトであるかをまず確認してください。特に、変数の初期化忘れや、関数の返り値の確認不足が原因となることが多いです。デバッグツールを使用して、エラー発生箇所の直前で"y"の値が何になっているかを確認し、typeof演算子などを用いてその型を調べてみることが解決への手がかりとなります。期待するオブジェクトが正しく生成されているか、または適切な値が代入されているかを見直すことで、問題は解消されます。

構文(syntax)

1let y = null;
2y.x = 10;

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ

関連プログラミング言語