Introducción

Leyendo algunos artículos de GraphQL con Apollo vi una sintaxis que me llamó la atención e incluso pensé que era un error. Luego leí otro artículo que explicaba justamente eso, y es lo que vengo a compartir: cómo llamar a una función sin usar paréntesis en el lenguaje de programación JavaScript

Cómo llamar a funciones sin usar paréntesis en JavaScript

Esto tiene que ver con las backticks en JavaScript, o las llamadas plantillas de cadena. La magia que ofrecen va más allá de ofrecernos una simple concatenación sin usar operadores, además de un código más legible.

Lo que pasa es que estas string templates en JavaScript nos permiten llamar a una función sin usar paréntesis.

Llamadas normales

Bueno, sabemos que llamamos a una función así:

funcion();

O en caso de querer guardar el resultado, así:

let resultado = funcion();

También podemos llamarla con argumentos:

let resultado = funcion(miArgumento);

O con argumentos sin guardar el resultado:

funcion(miArgumento);

Pues con las template strings o backticks todo esto cambia. Podemos llamar a una función sin usar paréntesis.

Llamar a una función sin usar paréntesis

Es casi como llamar a una función normal, pero no le ponemos paréntesis y en su lugar ponemos una template string. Vamos a definir esta función que te saluda:

const saludar = nombre => {alert("Hola " + nombre);}

Si no entiendes la sintaxis recomiendo leer: Funciones flecha en JavaScript

A esa función, normalmente la podemos llamar así:

saludar("Luis");

Pero oh sí, también así:

saludar`Luis`;

Ahí no usamos paréntesis. También podemos dejar un espacio entre la función y la template string:

saludar `Luis`;

Pero si creemos que es una simple cadena y que incluso así funcionará estamos equivocados, porque si le pasamos una simple cadena así:

saludar"Luis";

Esto sucede:

Error de sintaxis si no usamos backticks

Error de sintaxis si no usamos backticks

Argumentos y valores de las template strings

Dentro de nuestra función también podemos leer los valores de la plantilla de cadena, los que son como ${valor}

Relacionado:  Extraer el texto de una imagen con JavaScript y Tesseract.js - Aplicación web

Vamos a crear esta función cuyos parámetros serán un arreglo y muchos valores (una función con infinitos argumentos):

const leer = (cadenas, ...valores) => {
  console.log("Las cadenas son: ", cadenas);
  console.log("Los valores son: ", valores);
}

Ahora llamemos a esa función con un template string como argumento:

leer`Hola mundo, saben cuánto es 10 + 1? Es ${10 + 1}. Y 2 elevado a la 31 es ${2 ** 31}`;

Con el siguiente resultado:

Llamar a una función sin usar paréntesis

Llamar a una función sin usar paréntesis

Como vemos, cada cadena que está separada por un ${} forma parte del arreglo del primer argumento. Y todos los resultados de las expresiones que estén entre ${} forman parte del segundo argumento.

Así podemos traer más poder al combinar estas funciones y las string templates.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 812 suscriptores


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/

0 Comments

Deja un comentario

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

A %d blogueros les gusta esto: