javascript

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

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

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

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

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.

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.