Miniatura del tutorial de Let, const y var

Let, const y var en JavaScript: diferencias y cuándo usarlos

La diferencia entre let, const y var en JavaScript depende del alcance de la variable, de si puedes reasignarla y de cómo se comporta antes de su declaración. Como criterio inicial, utiliza const cuando no vayas a reasignar y let cuando necesites cambiar el valor.

var sigue existiendo y es importante entenderlo al mantener código antiguo. Sin embargo, su alcance de función suele resultar menos claro en bloques y bucles.

Const no permite reasignar la variable

const nombre = "Ana";
console.log(nombre); // Ana
// nombre = "Luis"; // TypeError si descomentas esta línea

Una declaración const normal necesita inicialización. Su valor no tiene que ser conocido al escribir el programa: puedes asignarle el resultado de una función cuando se ejecute.

Let permite cambiar el valor

let intentos = 0;
intentos += 1;
console.log(intentos); // 1

Es apropiado para un contador o una referencia que debes sustituir. No elijas let solo porque el valor sea un array: modificar su contenido no equivale a reasignar la variable.

Const no hace inmutables los objetos

const usuario = { nombre: "Ana" };
usuario.nombre = "Luis";
console.log(usuario.nombre); // Luis

const tareas = [];
tareas.push("Estudiar JavaScript");
console.log(tareas.length); // 1

La referencia permanece, pero sus propiedades o elementos pueden cambiar. Object.freeze() puede impedir cambios en propiedades propias a un nivel, pero no congela automáticamente todos los objetos anidados.

Alcance de bloque frente a alcance de función

function comprobar() {
  if (true) {
    let temporal = "Solo dentro del bloque";
    var disponible = "Dentro de la función";
  }
  console.log(disponible);
  // console.log(temporal); // ReferenceError
}
comprobar();

Let y const pertenecen al bloque donde se declaran. Var pertenece a la función envolvente o al contexto superior correspondiente. Una variable global tampoco se comporta igual en un script clásico que en un módulo.

Hoisting y zona temporal muerta

Con var, acceder antes de la asignación puede devolver undefined. Con let y const, el acceso antes de la inicialización provoca un ReferenceError dentro de su zona temporal muerta. Por eso «se eleva» no significa «puedo usarla antes».

console.log(puntos); // undefined
var puntos = 10;

// Ejecuta aparte este ejemplo:
// console.log(total); // ReferenceError
// let total = 10;

Prueba los casos por separado: un error no capturado interrumpe la ejecución de ese recorrido y puede impedir que veas ejemplos posteriores.

Qué utilizar en proyectos nuevos

  • Empieza con const para referencias estables.
  • Usa let si la lógica requiere una reasignación.
  • Evita cambiar declaraciones antiguas sin revisar su alcance.
  • Elige nombres claros en lugar de reutilizar variables para tareas distintas.

Preguntas frecuentes

¿Const siempre mejora el rendimiento?

No debes elegirla por una promesa general de velocidad. Su utilidad principal es expresar y limitar la reasignación.

¿Puedo declarar dos let con el mismo nombre?

No en el mismo ámbito. En bloques diferentes puede ser válido, pero ocultar nombres puede dificultar la lectura.

Practica con un contador y un objeto de usuario. Para ejecutar los ejemplos utiliza Visual Studio Code y repasa las características de JavaScript.

Referencia técnica: documentación de MDN.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

logo mastercode pro
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Puedes ver mas detalle en nuestra pagina de privcidad