Backticks o plantillas de cadena en Javascript

Introducción

Javascript es un lenguaje que evoluciona rápidamente. Hace algunos años se introdujeron las backticks o template strings. Permiten concatenar y trabajar con cadenas de una mejor y sencilla manera.

Plantillas de cadena

Concatenar

¿Qué pasaba si queríamos un texto largo, legible en el código? podíamos hacer algo así:

var usuario = "pedrito",
    password = "123";
var texto = "Hola. Estos son tus datos: " + "\n" +
            "Usuario: " + usuario + "\n" + 
            "Contraseña: " + password;
console.log(texto);

En cambio, con las backticks podemos hacer esto:

var usuario = "pedrito",
    password = "123";
var texto = `Hola. Estos son tus datos:
Usuario: ${usuario}
Contraseña: ${password}`;
console.log(texto);

¿Fabuloso, no?

Expresiones

Como vimos, con ${} podemos acceder a variables. Pero no es acceder a variables lo único que podemos hacer; de hecho podemos poner una expresión como cualquier otra.

Veamos por ejemplo cómo imprimir una tabla de multiplicar. Normalmente sería así:

var tabla = 5;
for(var i = 1; i <= 10; i++) console.log(tabla + "x" + i + " = " + tabla * i + "\n");

Con resultados:

Tabla de multiplicar con ES5
Tabla de multiplicar con ES5

En cambio, con las template strings haríamos algo así:

var tabla = 5;
for(var i = 1; i <= 10; i++) console.log(`${tabla}x${i} = ${tabla * i}
`);

El resultado sería el mismo:

Tabla de multiplicar con ES6
Tabla de multiplicar con ES6 

Comillas, saltos de línea y tabulaciones

Podemos escapar cualquier tipo de comillas. Los saltos de línea los ponemos incluyendo el salto de línea directamente en la plantilla, al igual que las tabulaciones. Aquí un ejemplo:

var mensaje = `Esto es una comilla doble => "
Esto es una comilla simple => '




Arriba hay muchos saltos
    Una tabulación
        ¡Otra tabulación!




        Saltos con tabulación`;
console.log(mensaje);

Con eso podemos poner mucho texto sin preocuparnos por escaparlo. El resultado es este:

Sin necesidad de escapar texto, tabulaciones, comillas o saltos de línea
Sin necesidad de escapar texto, tabulaciones, comillas o saltos de línea

Funciones

Para terminar de explicar, veremos que también podemos llamar a funciones, pasar parámetros y todo eso. De hecho, dentro de una función también usamos las backticks.

var visitante = "Luis";

var saludo = function(nombre){
    return `¡Hola, ${nombre}!`;
}

var sumar = function(a, b){
    return a + b;
}
console.log(`${saludo(visitante)} Bienvenido a mi sitio. 5 + 5 es igual a ${sumar(5, 5)}`)

Al ejecutar el código, este es el resultado:

Funciones llamadas dentro de plantillas de texto
Funciones llamadas dentro de plantillas de texto

Conclusión

Recordemos que no todos los navegadores lo soportan, así que es mejor investigar antes de implementar. Por otro lado, podemos utilizar un compilador como Babel que convertiría las template strings en cadenas simples, concatenadas, respetando saltos de línea, llamadas a funciones y todo eso.

BabelJS para transformar backticks. A la derecha texto transformado.
BabelJS para transformar backticks. A la derecha texto transformado.

En este caso lo hice directamente desde el navegador, pero ya hay muchas herramientas que permiten compilarlo automáticamente.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

5 comentarios en “Backticks o plantillas de cadena en Javascript”

  1. Pingback: Cadenas y plantillas de cadena en Kotlin - Parzibyte's blog

  2. Pingback: Conexión Node.js y MySQL con Express - Parzibyte's blog

  3. Pingback: Consumir API de DuckDuckGo con Node.JS - Parzibyte's blog

  4. Pingback: Llamar a una función sin usar paréntesis en JavaScript - Parzibyte's blog

  5. Pingback: Creando un buscador de artículos con API de Wikipedia y VueJS - Parzibyte's blog - El blog de Luis Cabrera

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *