Un ReferenceError se lanza en JavaScript cuando intentas usar una variable que no ha sido declarada, o cuando accedes a una variable let o const antes de que haya sido inicializada. Esto frecuentemente es causado por la zona muerta temporal (temporal dead zone) de las declaraciones let/const.
Por qué ocurre
- •Acceder a una variable let o const antes de su línea de declaración (zona muerta temporal).
- •Error tipográfico en el nombre de la variable que no coincide con ninguna variable declarada.
- •Usar una variable en un scope donde no fue declarada.
- •Olvidar declarar una variable con let, const o var.
Ejemplos
Código que causa el error
console.log(counter);
let counter = 0;Error en la terminal
ReferenceError: Cannot access 'counter' before initialization
Cómo solucionarlo
Declara todas las variables con let o const al comienzo del scope donde se usan. Evita depender del hoisting de var. Usa un linter (ESLint con no-use-before-define) para detectar problemas de zona muerta temporal durante el desarrollo.
Código corregido
let counter = 0;
console.log(counter); // 0
// With var (no ReferenceError but bad practice):
// console.log(count); // undefined (hoisted)
// var count = 0;Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis