Uncaught TypeError: Cannot read properties of undefined

Uncaught TypeError: Cannot read properties of undefined

Hiba leírása:

Ez az egyik leggyakoribb JavaScript futásidejű hiba:

Uncaught TypeError: Cannot read properties of undefined (reading 'foo')

Akkor fordul elő, amikor megpróbálsz egy objektum tulajdonságához hozzáférni, de az objektum valójában undefined.

💥 Tipikus hibás kód

const user = getUser(); // de a getUser() undefined-et ad vissza
console.log(user.name); // ❌ TypeError: Cannot read properties of undefined

✅ Megoldás

  1. Ellenőrizd, hogy az érték nem undefined:
    if (user !== undefined) {
      console.log(user.name);
    }
  2. Használj optional chaining-et (modern JS):
    console.log(user?.name);
  3. Alapértelmezett érték használata:
    const user = getUser() || {};
    console.log(user.name || 'Névtelen');

🧠 Miért történik ez?

Ez a hiba annak a jele, hogy a kódod nem kezeli az adat hiányát. Ha egy aszinkron hívás hibát dob, vagy egy változó nem kapott értéket, akkor az marad undefined. Ha ezt azonnal objektumként használod, hiba keletkezik.

Gyakori okok:

  • API hívás sikertelen (üres adat)
  • DOM elem nem található
  • Objektum még nem töltődött be (pl. React-ben state változás előtt)

🧪 Tipp fejlesztőknek

  • Használj console.log()-ot minden gyanús változón.
  • Írj try...catch blokkot kritikus szakaszok köré.
  • Tesztelj különböző inputokkal (null, undefined, 0 stb.).

🧯 Összefoglalás

Ez a hiba könnyen elkerülhető, ha mindig ellenőrzöd, hogy az adott változó valóban létezik, mielőtt elérsz egy tulajdonságot rajta. Az optional chaining (?.) és az alapértelmezett értékadás segítenek megelőzni a hibát.

🔗 Kapcsolódó hibák: