Volver a la página principal
miércoles 12 febrero 2025
6

Diferencia entre var, let y const en JavaScript

En JavaScript, var, let y const se usan para declarar variables, pero tienen diferencias en alcance, mutabilidad y hoisting.

var: Variable de función (obsoleta)

  • Ámbito (scope): Tiene ámbito de función, es decir, solo es accesible dentro de la función donde se declara.
  • Redeclaración: Se puede redeclarar dentro del mismo ámbito.
  • Hoisting: Se eleva (hoisting) y su valor es undefined hasta que se asigna.

Ejemplo de var

function ejemploVar() {
    var x = 10;
    if (true) {
        var x = 20; // Modifica la misma variable
        console.log(x); // 20
    }
    console.log(x); // 20 (el valor cambia fuera del bloque)
}
ejemploVar();

let: Variable de bloque

  • Ámbito (scope): Tiene ámbito de bloque, es decir, solo existe dentro de {} donde se declara.
  • Redeclaración: No permite redeclaración en el mismo ámbito.
  • Hoisting: Se eleva, pero no se inicializa hasta que se asigna un valor.

Ejemplo de let

function ejemploLet() {
    let y = 10;
    if (true) {
        let y = 20; // Nueva variable dentro del bloque
        console.log(y); // 20
    }
    console.log(y); // 10 (mantiene su valor original)
}
ejemploLet();

const: Variable constante (inmutable)

  • Ámbito (scope): También tiene ámbito de bloque.
  • Mutabilidad: No se puede reasignar, pero si es un objeto o array, sus propiedades sí pueden modificarse.
  • Hoisting: Se eleva, pero no se inicializa hasta que se asigna.

Ejemplo de const

const z = 30;
z = 40; // ❌ Error: No se puede reasignar una constante

Ejemplo con objetos y const

const persona = { nombre: "Ana" };
persona.nombre = "Carlos"; // ✅ Se puede modificar la propiedad
console.log(persona.nombre); // Carlos

Resumen de diferencias

Característica var let const
Ámbito Función Bloque {} Bloque {}
Redeclarable No No
Reasignable No
Hoisting Sí (inicializa undefined) Sí (sin inicializar) Sí (sin inicializar)

Conclusión

  • Usa let para variables que cambian de valor.
  • Usa const para valores que no deben reasignarse.
  • Evita var, ya que puede causar errores debido a su comportamiento en el hoisting y su ámbito de función.
Etiquetas:
javascript
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer