edubun
Español

Variables: let y const

Una variable es un nombre para un valor. Después de let score = 10, la palabra score representa 10 hasta que le des otra cosa.

Ponerle nombre a un valor para volver a usarlo

Hasta ahora, cada valor se escribía directamente en console.log y luego se olvidaba. Los programas reales necesitan recordar cosas: la puntuación del jugador, los artículos de una canasta, el nombre que alguien escribió. Una variable es una caja con nombre que guarda un valor. La creas una vez y luego usas su nombre donde necesites el valor.

let score = 10;
console.log(score);        // muestra 10
console.log(score + 5);    // muestra 15

La línea let score = 10; hace dos cosas. La palabra clave let declara una variable nueva llamada score, y = 10 pone en ella el valor 10. Aquí el signo igual no significa "es igual a", como en matemáticas. Significa "guarda el valor de la derecha en el nombre de la izquierda". Los programadores lo llaman asignación. Cuando score aparece después sin comillas, JavaScript busca la caja y usa el valor que contiene.

Cambiar un valor con let

A una variable declarada con let se le puede dar un valor nuevo más adelante. Escribes el nombre, un signo igual y el valor nuevo, esta vez sin let, porque la variable ya existe:

let score = 10;
score = 25;
console.log(score);        // muestra 25
score = score + 5;
console.log(score);        // muestra 30

La línea score = score + 5; parece imposible en matemáticas, pero léela como una instrucción y tiene sentido. JavaScript evalúa primero el lado derecho, la puntuación actual más 5, que es 30. Luego guarda 30 de nuevo en score. El valor anterior desaparece. Este patrón, leer una variable y guardar en ella un valor actualizado, es la forma en que los programas cuentan, suman totales y siguen cualquier cosa que cambie.

const para los valores que no cambian

La palabra clave const también declara una variable, pero hay que darle un valor de inmediato y nunca se le puede asignar otro. Intentarlo detiene el programa con TypeError: Assignment to constant variable. Ese error es útil. Si un valor no debe cambiar, como el número de días de una semana o una tasa de impuesto, declararlo con const significa que un error en otra parte del programa no puede sobrescribirlo sin que nadie lo note.

const daysInWeek = 7;
console.log(daysInWeek * 4);   // muestra 28
// daysInWeek = 8;  se detendría con un TypeError

Un buen hábito, que recomiendan muchas guías de estilo, es usar const por defecto y pasar a let solo cuando sabes que el valor va a cambiar. En el código de la web también puedes ver la palabra clave más antigua var. Sigue funcionando, pero obedece reglas más laxas que causan errores sorprendentes, así que este curso usa solo let y const.

Reglas para los nombres

Un nombre de variable puede tener letras, dígitos, el guion bajo _ y el signo de dólar $, pero no puede empezar con un dígito ni tener espacios. Así, total2 está bien y 2total no. Los nombres distinguen mayúsculas de minúsculas: score y Score son dos variables distintas. Unas pocas palabras como let, const, if y for están reservadas por el lenguaje y no se pueden usar como nombres. Cuando un nombre está formado por varias palabras, los programadores de JavaScript suelen escribirlo en camelCase: la primera palabra en minúsculas y cada palabra siguiente empezando con mayúscula, como en totalPrice o daysInWeek. Elige nombres que digan qué significa el valor; price le dice a quien lee mucho más que x.

Declarada pero vacía, y usada demasiado pronto

Si escribes let answer; sin valor, la variable existe pero contiene undefined hasta que le asignes algo. Usar una variable let o const en una línea anterior a su declaración es un error: ReferenceError: Cannot access 'answer' before initialization. Usar un nombre que nunca se declaró da ReferenceError: answer is not defined. En la práctica, los dos mensajes significan lo mismo: revisa la ortografía y comprueba que la declaración vaya primero.

let nombre = valor; puede cambiar después. const nombre = valor; nunca cambia.

variableUn nombre que guarda un valor
declararCrear una variable con let o const
asignaciónGuardar un valor con =
letDeclara una variable cuyo valor puede cambiar
constDeclara una variable a la que no se le puede reasignar un valor
camelCasetotalPrice: las palabras siguientes empiezan con mayúscula
undefinedLo que contiene una variable declarada antes de recibir un valor
palabra reservadaUna palabra como let o if que no puede ser un nombre
  1. ¿Qué imprime esto?
    let x = 4;
    x = x + 3;
    console.log(x);
  2. ¿Qué imprime esto?
    let n = 2;
    n = 10;
    n = n * 3;
    console.log(n);
  3. ¿Qué imprime esto?
    let city = "Busan";
    console.log("city");
    • Busan
    • city
    • undefined
  4. ¿Qué pasa cuando se ejecuta esto?
    const max = 5;
    max = 6;
    • max pasa a valer 6
    • Se detiene con TypeError: Assignment to constant variable
    • Nada, max se queda en 5 sin avisar
  5. ¿Cuál es un nombre de variable válido?
    • 2ndPlace
    • second place
    • secondPlace
  6. ¿Qué imprime esto?
    let total;
    console.log(typeof total);
  7. ¿Qué imprime esto?
    let a = 5;
    let b = a;
    a = 9;
    console.log(b);
  8. ¿Son score y Score la misma variable?
    • Sí
    • No
  9. ¿Qué palabra clave deberías usar para el número de minutos de una hora?
    • const
    • let
    • var
  10. ¿Qué imprime esto?
    let word = "hi";
    word = word + word;
    console.log(word);
Ideas clave
  • let nombre = valor; declara una variable que puede cambiar.
  • const nombre = valor; declara una a la que no se le puede reasignar un valor.
  • = significa guardar, no igual a.
  • x = x + 1 lee x, le suma 1 y guarda el resultado de vuelta.
  • Nombres: letras, dígitos, _ y $, sin dígito al principio, distinguen mayúsculas, camelCase.
Fuentes de este curso (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Fecha de consulta: 2026-10-17