Skip to content

Lección 12: Template Literals (Plantillas de Cadenas)

Los template literals (template strings o plantillas de cadenas) son una forma moderna y poderosa de trabajar con strings en JavaScript. Se introdujeron en ES6 (2015) y desde entonces se han convertido en el estándar.

En lugar de comillas simples o dobles, usamos backticks (acento grave) ` (la tecla junto a la Ñ en teclado español).

let saludo = `Hola Mundo`; // template literal básico

La gran ventaja: podemos insertar variables directamente dentro del string usando ${}.

let nombre = 'Ana';
let edad = 25;
// Sin template literals (incómodo)
console.log('Hola, me llamo ' + nombre + ' y tengo ' + edad + ' años.');
// Con template literals (limpio)
console.log(`Hola, me llamo ${nombre} y tengo ${edad} años.`);

Con template literals podemos escribir strings de varias líneas sin usar \n:

// Sin template literals
let texto1 = 'Línea 1\n' +
'Línea 2\n' +
'Línea 3';
// Con template literals
let texto2 = `Línea 1
Línea 2
Línea 3`;
console.log(texto2);

No solo puedes poner variables, sino cualquier expresión de JavaScript:

let a = 10;
let b = 5;
console.log(`La suma de ${a} y ${b} es ${a + b}`);
console.log(`¿Es ${a} mayor que ${b}? ${a > b}`);
// Llamar funciones
function saludar(nombre) {
return `Hola ${nombre}`;
}
console.log(`${saludar('Carlos')}, bienvenido`);
// Datos del usuario
let usuario = 'María';
let rol = 'administradora';
let mensajesNoLeidos = 3;
let conexion = true;
// Mensaje personalizado
let mensaje = `
───────────────────────────
Bienvenida, ${usuario} 👋
Rol: ${rol.toUpperCase()}
Mensajes: ${mensajesNoLeidos > 0 ? mensajesNoLeidos : 'ninguno'}
Estado: ${conexion ? '🟢 En línea' : '🔴 Desconectada'}
───────────────────────────
`;
console.log(mensaje);
// HTML con template literals
let titulo = 'Mi Página';
let contenido = '<p>Hola mundo</p>';
let html = `
<!DOCTYPE html>
<html>
<head>
<title>${titulo}</title>
</head>
<body>
${contenido}
</body>
</html>
`;
console.log(html);
  1. Crea un archivo template-literals.js.
  2. Declara variables: nombre, edad, ciudad, profesion.
  3. Usa un template literal para crear una presentación como: “Hola, soy [nombre], tengo [edad] años, vivo en [ciudad] y soy [profesion].”
  4. Crea un template literal multilínea con un horario de clases usando ${}.
  5. Incluye una expresión matemática dentro de ${}.
let nombre = 'Luis';
let edad = 28;
let ciudad = 'Monterrey';
let profesion = 'diseñador';
let presentacion = `Hola, soy ${nombre}, tengo ${edad} años,
vivo en ${ciudad} y soy ${profesion}.`;
console.log(presentacion);
// Edad en meses
console.log(`${nombre} tiene ${edad * 12} meses de vida.`);

No puedes mezclar backticks con comillas dentro de la interpolación. Si necesitas comillas dentro del string, simplemente escríbelas normalmente:

let texto = `Ella dijo: "Hola" y él respondió: '¿Qué tal?'`; // ✅ válido

Los template literals también permiten template tags (etiquetado), una característica avanzada que permite procesar el template con una función. Frameworks como styled-components en React lo usan. Pero eso lo veremos más adelante. Por ahora, domina la interpolación y strings multilínea.