const vs let en JavaScript: cuándo usar cada uno

Clase 7 de 27Curso Gratis de Programación Básica

Contenido del curso

Resumen

Cuando empiezas a escribir código profesional en JavaScript, una de las primeras decisiones de diseño que tomas es elegir entre let y const para declarar variables. Esta elección no es un capricho de sintaxis, sino una pista que le das a tu yo del futuro y a cualquier persona que lea tu código.

¿Por qué JavaScript tiene dos formas de declarar variables?

Piensa en un café como Okini. Hay información que no se mueve durante el día, como el precio de un V60 fijado en cinco dólares. Y hay información que cambia todo el tiempo, como el contador de tazas servidas, que arranca en cero a las ocho de la mañana y va subiendo con cada pedido.

No tiene sentido que tu código trate ambos tipos de información igual, y por eso JavaScript te da dos palabras distintas para distinguirlos [01:08].

¿Qué diferencia hay entre let y const? let declara variables cuyo valor puede cambiar durante la ejecución. const declara variables que se mantienen fijas. Si intentas reasignar una const, JavaScript lanza un error.

¿Cómo se declara una variable con let?

Para valores que van a cambiar, usas let. El contador de reservas del día es un caso típico:

js let tazasReservadasHoy = 0; console.log(tazasReservadasHoy);

Fíjate en tres detalles. El nombre de la variable se escribe en camelCase, una convención donde separas las palabras con mayúsculas en lugar de espacios o guiones. La línea termina en punto y coma, igual que cerrarías una frase con un punto. Y console.log es la instrucción que imprime el valor en la terminal para que lo puedas ver [02:46].

Si después alguien hace una reserva, puedes reasignar el valor sin problema:

js tazasReservadasHoy = 1; console.log(tazasReservadasHoy);

La máquina no se queja. let le está diciendo: este nombre guarda un valor que se va a cambiar.

¿Cómo se declara una variable con const?

const viene de constante y se usa para valores que no van a cambiar a lo largo del proyecto. El precio del V60, por ejemplo:

js const precioV60 = 5; console.log(precioV60);

Si intentas reasignarlo, la terminal te devuelve un TypeError: assignment to constant variable [05:00]. La máquina te está diciendo: tú me prometiste que esto no iba a cambiar, no lo cambies. Eso es const haciendo su trabajo, protegiéndote de ti mismo.

¿Cuándo debo usar const y cuándo let en JavaScript?

La convención profesional moderna es contraintuitiva: usa const por defecto y let solo cuando sepas que el valor va a cambiar efectivamente [05:33].

La razón tiene que ver con la lectura del código. Cuando alguien lee tu archivo, ya seas tú dentro de tres meses, un colega o una IA generando código, ver const da información instantánea: este valor no se mueve, no necesito buscar dónde se modifica más adelante. Ver let, en cambio, es una alerta: ojo, ese valor cambia en algún punto, fíjate dónde.

Esa información reduce la cantidad de cosas que tu cerebro tiene que rastrear mientras lees.

¿Qué cosas declaro como const en un proyecto real?

En el ejemplo de Okini, todo lo que se mantiene fijo durante la ejecución va con const:

  • El nombre del café.
  • Los precios del menú.
  • El máximo de tazas diarias, fijado en 50.

Si mañana Okini sube el precio del V60 a seis dólares, vas al código y lo editas. Pero esa es otra cosa. Durante la ejecución del programa, esos valores se quedan quietos.

El contador de tazas servidas, en cambio, es el caso claro de let, porque cada reserva lo modifica [06:53].

¿Puedo usar let para todo y olvidarme de const? Técnicamente sí, pero pierdes la pista visual que ayuda a leer el código. Usar const por defecto comunica intención y previene reasignaciones accidentales.

¿Const o let para una reserva específica de un cliente?

Aquí viene la parte tricky. Si un cliente reserva dos tazas en este momento, ¿usarías const o let?

La respuesta es const, porque dentro de esa transacción, ese cliente está pidiendo dos tazas y ese número no va a cambiar mientras procesamos su reserva. Si después llega otro cliente pidiendo tres, eso es otra variable en otro momento [07:55].

La decisión entre let y const no se toma por el tipo de cosa que estás guardando, sino por si el valor va a mutar dentro del flujo donde vive.

¿Cómo detecto código de baja calidad generado por IA?

La próxima vez que le pidas código a una inteligencia artificial, mira con atención si usó const o let. Si ves un let en un valor que claramente no va a cambiar, como un precio, un nombre o un máximo, eso es una señal de que el código tiene una decisión floja por dentro [08:30].

No es un error que rompa nada, pero es una pista de que puede haber descuido. Detectar esas pistas es una capacidad que se llama discernment y se vuelve cada vez más valiosa cuando trabajas con asistentes de código.

Un pequeño tip de organización: mantén un archivo por concepto, como variables.js, para que puedas volver a buscar cosas cuando las necesites. Y si miras tu código, vas a notar que las palabras aparecen entre comillas mientras que los números aparecen solos y en otro color. Esa diferencia se llama tipos de datos y es el siguiente paso para que tu código no falle. ¿Tú ya tienes claro cuáles variables de tu proyecto irían con const? Cuéntamelo en los comentarios.