JavaScript
🚨 TypeError: Cannot read properties of undefined (reading 'length')
undefinedに対して.lengthを呼んでいる
😰 こんな症状
配列や文字列を代入し忘れた変数に.lengthを使ってエラーになる。変数の初期化忘れで起きるよ。
🔍 原因
undefinedな変数に対して.lengthを呼んでいるよ。配列や文字列を代入し忘れている、関数の戻り値がundefined、非同期処理の結果がまだセットされていない、などが原因だよ。
❌ エラーが起きるコード
let data;
console.log(data.length);
// undefined ✅ 直し方
1. 変数が正しく初期化されているか確認する(let data; → let data = [];)。 2. 関数の戻り値がundefinedになっていないかチェックする。 3. 非同期データの場合はデータ取得後にアクセスする。 4. if (data) console.log(data.length)のようにガードする。
✅ 修正後のコード
let data = [];
console.log(data.length); // 0 この解決法は役立ちましたか?
🔗 関連するエラー
- Uncaught TypeError: Cannot read properties of null — getElementById の id が存在しない
- TypeError: Cannot read properties of null(null参照) — nullのプロパティにアクセスしている
- TypeError: Cannot set properties of null (setting 'textContent') — nullに対してプロパティを設定しようとしている
- ReferenceError: Cannot access before initialization — let/constの宣言前にアクセスしている
- RangeError: Invalid array length — 配列の長さに不正な値を指定している
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説