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)
undefined
hasta que se asigna.
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
{}
donde se declara.
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)
const
const z = 30;
z = 40; // ❌ Error: No se puede reasignar una constante
const
const persona = { nombre: "Ana" };
persona.nombre = "Carlos"; // ✅ Se puede modificar la propiedad
console.log(persona.nombre); // Carlos
Característica |
var
|
let
|
const
|
---|---|---|---|
Ámbito | Función |
Bloque {}
|
Bloque {}
|
Redeclarable | Sí | No | No |
Reasignable | Sí | Sí | No |
Hoisting |
Sí (inicializa undefined )
|
Sí (sin inicializar) | Sí (sin inicializar) |
let
para variables que cambian de valor.
const
para valores que no deben reasignarse.
var
, ya que puede causar errores debido a su comportamiento en el hoisting y su ámbito de función.
Jorge García
Fullstack developer