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:
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:
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:
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:
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.
En este caso lo hice directamente desde el navegador, pero ya hay muchas herramientas que permiten compilarlo automáticamente.
Pingback: Cadenas y plantillas de cadena en Kotlin - Parzibyte's blog
Pingback: Conexión Node.js y MySQL con Express - Parzibyte's blog
Pingback: Consumir API de DuckDuckGo con Node.JS - Parzibyte's blog
Pingback: Llamar a una función sin usar paréntesis en JavaScript - Parzibyte's blog
Pingback: Creando un buscador de artículos con API de Wikipedia y VueJS - Parzibyte's blog - El blog de Luis Cabrera