Hiba leírása:
Ez a JavaScript hiba akkor fordul elő, ha megpróbálunk elérni egy olyan változót, amely nem lett deklarálva az aktuális vagy bármelyik külső scope-ban.
Uncaught ReferenceError: myVar is not defined
A JavaScript értelmező nem találja a változót, ezért hibát dob.
—💥 Tipikus hibás kód
function greet() {
console.log(name); // ❌ ReferenceError
}
greet();
A fenti példában name változó sehol sincs definiálva, ezért a JavaScript hibaüzenetet dob.
✅ Megoldás
- Deklaráld a változót mielőtt használod:
function greet() { const name = "Anna"; console.log(name); // ✅ Anna } - Figyelj a scope hatókörre:
function outer() { const message = "Helló"; function inner() { console.log(message); // ✅ elérhető a külső scope-ban } inner(); } - Globális változó hiányzik vagy elírás történt:
console.log(useName); // ❌ useName is not defined // helyesen: console.log(userName);
🧠 Miért történik ez?
A ReferenceError a JavaScript egyik legalapvetőbb hibája, ami akkor keletkezik, amikor egy változóra hivatkozunk, mielőtt az a scope-ban definiálva lenne.
Gyakori okok:
- Elírás a változónévben (pl.
userhelyettuesr) - A változó kívül van a funkció hatókörén (scope-on)
- A változót nem deklarálták (
let,const, vagyvarhiányzik)
🧪 Tipp fejlesztőknek
- Mindig használj
constvagyletkulcsszót deklaráláskor - Kapcsold be a „Strict Mode”-ot:
'use strict'; - IDE (pl. VSCode) hibajelzéseit vedd komolyan
🧯 Összefoglalás
A ReferenceError: x is not defined hiba arra utal, hogy a változó használata megelőzi annak létrehozását vagy deklarálását. Megfelelő változókezeléssel, scope-tudatossággal és modern JS szintaxis használatával ez a hiba könnyen megelőzhető.
