Introducción

Las funciones flecha (en donde se usa el operador flecha gorda =>) hacen que nuestro código sea más corto, y más entendible. Sin embargo, si somos principiantes tal vez no sepamos qué son o qué hacen las funciones arrow de JavaScript. Por eso hoy veremos una explicación de las funciones flecha en JavaScript.

Explicación de funciones flecha en JavaScript

Nota: recomiendo leer la explicación de let, var y const en JS

Definición de una función

Normalmente declaramos nuestras funciones así:

function saludar(nombre){
	alert("Hola " + nombre)
}
// Y para llamar:
saludar("Luis");

// O de esta forma

let saludar = function(nombre){
	alert("Hola " + nombre)
}

// Y para llamar:
saludar("Luis")

Pero con el operador de flecha gorda no necesitamos “function” así como se ve:

let saludar = nombre => {
	alert("Hola ", nombre)
}
// Y para llamar:
saludar("Luis");

Aquí el primer punto de confusión es justo en donde dice…

saludar = nombre =>

Pero tranquilo, que sólo es la lista de argumentos que recibe la función. Y en este caso como sólo es uno podemos omitir los paréntesis. Podría igualmente quedar así:

let saludar = (nombre) => {
	alert("Hola ", nombre)
}
// Y para llamar:
saludar("Luis");

Y si tuviera más argumentos así:

let saludar = (nombre, edad) => {
	console.log("Hola %s tienes %d años", nombre, edad)
}
// Y para llamar:
saludar("Luis", 30);

Valores de retorno

Normalmente, para regresar un valor en JavaScript usamos return. Veamos esto:

function sumar(primerNumero, segundoNumero){
	return primerNumero + segundoNumero;
}
// Y para llamar:
let suma = sumar(28, 11);

Ahí simplemente regresamos la suma de ambos números, ese es el único cuerpo de la función. No hay otros cálculos.

Cuando en las funciones flecha gorda sólo tenemos el return, sin cuerpo, podemos omitir las llaves:

let sumar = (primerNumero, segundoNumero) => primerNumero + segundoNumero;

Como vemos, omitimos las llaves y la palabra return, y regresamos la suma. También podría quedar así:

let sumar = (primerNumero, segundoNumero) => {
	return primerNumero + segundoNumero;
}

Aquí un bonus. Si vamos a regresar un objeto ({}) sus llaves podrían confundirse con las llaves de la función, pero podemos regresarlo si lo encerramos dentro de paréntesis.

Consideremos esto, en donde regresamos un objeto:

// () significa que no hay argumentos
let obtenerMascota = () => {
	return {
		nombre: "Maggie",
	}
}

Y si queremos regresar el objeto sin “return” haríamos esto:

let obtenerMascota = () => {
	nombre: "Maggie"
}

Pero estamos en un grave error porque las llaves de la función se confunden con las llaves del objeto. Si queremos hacerlo mejor hacemos esto:

let obtenerMascota = () => ({
		nombre: "Maggie",
	})

Así ya podemos regresar el objeto, encerrándolo en paréntesis.

Como callbacks

Finalmente veamos cómo usar las funciones flechas en callbacks.

Comencemos con el uso de forEach en un arreglo. Normalmente para iterarlo con dicha función hacemos esto:

[1, 2, 3].forEach(function(numero){
	console.log(numero);
});

Y todo bien. Pero con las funciones flecha en JavaScript hacemos esto:

[1, 2, 3].forEach(numero => {
	console.log(numero)
});

Por otro lado, veamos a map. Si quisiéramos cambiar un arreglo de números por los cuadrados de esos números (por ejemplo, si fuera [2, 3, 5] se cambiaría a [4, 9, 25]) haríamos esto:

[2, 3, 5].map(function(numero){
	//O numero ** 2
	// O Math.pow(numero, 2)
	return numero * numero;
});

Pero con las funciones flecha se podría simplificar a esto:

[2, 3, 5].map(numero => numero * numero);

Conclusión

Como vemos, estas funciones hacen que nuestro código sea más simple y claro, además de corto. Debemos practicar y así podremos llevarnos bien con esta nueva sintaxis.


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 6,836 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/

7 Comentarios

Convertir minutos a texto legible en JavaScript - Parzibyte's blog · enero 3, 2019 a las 12:22 am

[…] cierto, si no entiendes la sintaxis, mira lo que son las arrow functions, plantillas de cadena y let y […]

Factorial de un número en JavaScript con recursividad y ciclos - Parzibyte's blog · diciembre 28, 2018 a las 9:22 pm

[…] usaremos const y funciones flecha en JavaScript, por favor lee los artículos en caso de que no sepas qué son. De esta manera […]

Buscar índice o posición de elemento en arreglo de JavaScript - Parzibyte's blog · diciembre 4, 2018 a las 11:25 am

[…] importante es la parte en donde llamamos a findIndex. Utilizamos una función flecha para regresar un booleano, este booleano le indica a findIndex que hemos encontrado el […]

Explicación de watch en Vue JS 2 - Parzibyte's blog · noviembre 5, 2018 a las 7:03 pm

[…] No te confundas por la función, estamos usando sintaxis de funciones flecha. […]

Cómo ordenar arreglos en JavaScript usando sort - Parzibyte's blog · octubre 28, 2018 a las 11:19 pm

[…] recomiendo leer sobre las funciones flecha, son una forma corta de escribir funciones anónimas; las mismas que usaremos para ordenar en los […]

JavaScript: saber si es número narcisista - Parzibyte's blog · octubre 2, 2018 a las 11:35 pm

[…] Funciones flecha en JavaScript […]

Script para cambiar todas las imágenes de una página web - Parzibyte's blog · septiembre 10, 2018 a las 10:59 am

[…] tiene la función forEach que nos permite iterar por cada imagen. Utilizamos la sintaxis  de las funciones de flecha gorda para simplificar el […]

Deja un comentario

Marcador de posición del avatar

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

A %d blogueros les gusta esto: