← エラー辞典に戻る

JavaScript

🚨 TypeError: undefined is not an object (evaluating 'obj.name')

存在しないオブジェクトのプロパティにアクセスしている

😰 こんな症状

undefinedな変数にドット記法でアクセスしてエラーになる。オブジェクトの初期化忘れで起きやすいよ。

🔍 原因

変数がundefinedのままプロパティにアクセスしているよ。オブジェクトの初期化忘れ、関数の戻り値がundefined(returnを書き忘れ)、非同期処理の結果がまだ届いていない、などが原因だよ。undefinedのプロパティにアクセスするとTypeErrorになるよ。

❌ エラーが起きるコード

let arr;
arr.push(1);
// undefined に push

✅ 直し方

1. アクセス前にオブジェクトが存在するか確認する(if (obj) obj.name)。 2. オプショナルチェーン(?.)を使う:obj?.name。 3. 変数の初期化を確認する(let arr; → let arr = [];)。 4. 関数にreturn文があるか確認する。

✅ 修正後のコード

let arr = [];
arr.push(1);

この解決法は役立ちましたか?

🔗 関連するエラー

🔗 別カテゴリの関連エラー

📖 この問題を学べるレッスン

JavaScriptコースで基礎から学ぶ →

📝 関連ブログ記事

📖 関連する用語

🚀 JavaScriptコースで基礎を学ぼう!

エラーの原因を根本から理解するには、基礎を体系的に学ぶのが近道です。完全無料・登録不要。

JavaScriptコースを始める →

❓ 関連するQ&A