Declaración de Variables en JavaScript: Análisis de var, let y const

Introducción a las Declaraciones de Variables en JavaScript

En JavaScript, existen tres formas principales de declarar variables: var, let y const. Cada una tiene características únicas que afectan el ámbito, la mutabilidad y el comportamiento durante la ejecución del código.

  1. var: Declaración Tradicional

var tiene alcance de función, lo que significa que una variable declarada con var dentro de un bloque como if o for puede ser accesible fuera de ese bloque.

function demostrarAlcance() {
    if (true) {
        var contador = 5;
    }
    console.log(contador); // Se imprime 5, ya que var tiene alcance de función
}

Permite la redeclaración de variables con el mismo nombre sin errores, lo que puede llevar a sobreescrituras accidentales.

var valor = 10;
var valor = 20; // Esto es válido y sobreescribe el valor anterior

Las variables declaradas con var se elevan al inicio de su ámbito durante la fase de compilación, pero su asignación permanece en su lugar original.

console.log(temp); // Se imprime undefined, no causa error
var temp = 50;
  1. let: Alcance de Bloque Moderno

let declara variables con alcance de bloque, restringiéndolas al bloque {} donde se definen.

if (true) {
    let indice = 1;
}
console.log(indice); // Lanza un error: indice no está definido

Prohíbe la redeclaración de variables con el mismo nombre en el mismo bloque.

let cantidad = 3;
let cantidad = 4; // Error: ya se ha declarado cantidad

Existe una "zona muerta temporal" donde la variable no es accesible antes de su declaración.

console.log(precio); // Error: no se puede acceder a precio antes de la inicialización
let precio = 100;

En bucles, let garantiza que cada iteración tenga su propia variable, evitando errores comunes con closures.

for (let paso = 0; paso < 3; paso++) {
    setTimeout(() => console.log(paso), 0); // Imprime 0, 1, 2
}
  1. const: Constantes Inmutables

const requiere inicialización al momento de la declaración; de lo contrario, se produce un error.

const GRAVEDAD = 9.8;
// const NO_DEFINIDO; // Esto causaría un error

Para tipos primitivos como números o cadenas, el valor no puede ser reasignado, aunque para objetos y arrays, los elementos internos sí pueden modificrase.

const URL_BASE = "http://api.ejemplo.com";
// URL_BASE = "http://nueva.url"; // Error: reasignación no permitida

const usuario = { nombre: "Ana" };
usuario.nombre = "Luis"; // Esto es válido, ya que se modifica una propiedad

const tiene alcance de bloque, similar a let.

{
    const CLAVE = "secreto";
}
console.log(CLAVE); // Error: CLAVE no está definida fuera del bloque

Prácticas Recomendadas

Evita el uso de var en código moderno, ya que let y const ofrecen mayor seguridad y claridad.

Prefiere const por defecto para variables que no necesitan reasignación; usa let solo cuando sea necesario cambiar el valor.

Para declarar múltiples variables, utiliza la separación por comas para reducir código redundante.

let nombre = "Carlos", edad = 25, puntuacion = 90;

Etiquetas: JavaScript ecmascript var let const

Publicado el 6-11 05:55