Ejercicios resueltos de funciones en JavaScript (Declaradas, anónimas y arrow functions) 10 ejercicios resueltos + aprendizaje teorico
Aprende a dominar las funciones en JavaScript (declaradas, anónimas y arrow) con ejercicios prácticos, ejemplos detallados y consejos para perfeccionar tus habilidades de programación web.
Aprendizaje teórico
Las funciones en JavaScript son bloques de código reutilizables que nos permiten encapsular lógica y ejecutar una serie de instrucciones. Existen distintas formas de declarar funciones:
Funciones declaradas
Se definen con la palabra reservada function
y tienen un nombre. Estas se cargan antes de ejecutar el código y se pueden invocar en cualquier punto.
function saludar() { console.log("¡Hola, mundo!"); }
Funciones anónimas
Son aquellas que se asignan a una variable u otra estructura, pero no tienen un nombre propio. También se definen con la palabra reservada function
.
const saludar = function () { console.log("¡Hola, mundo!"); };
Arrow functions
Son una sintaxis más concisa introducida en ES6. Eliminan la palabra function
y utilizan la =>
para indicar el cuerpo de la función.
const saludar = () => { console.log("¡Hola, mundo!"); };
Las funciones en JavaScript son fundamentales para estructurar y organizar el código, ya que permiten reutilizar lógica y separar responsabilidades. Su versatilidad radica en las múltiples formas de declararlas y en la facilidad para combinarlas con otras características del lenguaje.
Intento de resolución antes de la solución
Antes de cada ejercicio, te invitamos a intentarlo por tu cuenta. Esto te ayudará a reforzar tus habilidades, comprender mejor el problema y pensar de manera analítica para encontrar tu propia solución.
10 ejercicios resueltos sobre funciones en JavaScript
A continuación, presentamos diez ejercicios con sus soluciones.
¡Pon a prueba lo que has aprendido!
Ejercicio 1: Función declarada para sumar dos números
Descripción del problema
Crea una función declarada que reciba dos números como parámetros y retorne la suma de ambos.
// 1. Declaramos la función con la palabra 'function' y le damos un nombre: 'sumar'.
// 2. Recibe dos parámetros: 'a' y 'b'.
// 3. Retornamos el resultado de 'a + b'.
function sumar(a, b) {
return a + b;
}
// Ejemplo de uso:
const resultado = sumar(5, 7); // 12
console.log(resultado);
Ejercicio 2: Función anónima para verificar si un número es par
Descripción del problema
Crea una función anónima que verifique si un número es par o no. Debe retornar true
si es par y false
en caso contrario.
// 1. Asignamos a una constante 'esPar' una función anónima.
// 2. Esta función recibe un parámetro 'numero'.
// 3. Usamos el operador módulo (%) para verificar si el número es múltiplo de 2.
const esPar = function (numero) {
return numero % 2 === 0;
};
// Ejemplo de uso:
console.log(esPar(10)); // true
console.log(esPar(7)); // false
Ejercicio 3: Arrow function para saludar
Descripción del problema
Crea una arrow function que reciba un nombre y retorne un saludo personalizado.
// 1. Definimos una arrow function que recibe 'nombre' como parámetro.
// 2. Retorna un string que contiene el saludo con el nombre ingresado.
const saludar = (nombre) => {
return `¡Hola, ${nombre}!`;
};
// Ejemplo de uso:
console.log(saludar("Laura")); // ¡Hola, Laura!
Ejercicio 4: Función declarada para calcular el factorial de un número
Descripción del problema
Implementa una función declarada que reciba un número y retorne su factorial. El factorial de un número n
es n * (n-1) * (n-2) * ... * 1
.
// 1. Definimos la función 'factorial(n)' usando 'function'.
// 2. Si 'n' es 0 o 1, retornamos 1 porque el factorial de 0 y de 1 es 1.
// 3. Caso contrario, calculamos el factorial multiplicando sucesivamente.
function factorial(n) {
if (n === 0 || n === 1) {
return 1;
}
let resultado = 1;
for (let i = 2; i <= n; i++) {
resultado *= i;
}
return resultado;
}
// Ejemplo de uso:
console.log(factorial(5)); // 120
Ejercicio 5: Función anónima para contar vocales en una cadena
Descripción del problema
Crea una función anónima que, dado un string, cuente la cantidad de vocales (a, e, i, o, u) que contiene.
// 1. Definimos la función anónima y la asignamos a 'contarVocales'.
// 2. Convertimos la cadena a minúsculas para simplificar la comparación.
// 3. Recorremos cada carácter y verificamos si es vocal.
const contarVocales = function (cadena) {
const vocales = ["a", "e", "i", "o", "u"];
let contador = 0;
let minusculas = cadena.toLowerCase();
for (let char of minusculas) {
if (vocales.includes(char)) {
contador++;
}
}
return contador;
};
// Ejemplo de uso:
console.log(contarVocales("Hola Mundo")); // 4
Ejercicio 6: Arrow function para encontrar el número mayor de un arreglo
Descripción del problema
Crea una arrow function que, dado un arreglo de números, devuelva el número mayor.
// 1. Creamos una arrow function que recibe un arreglo como parámetro.
// 2. Utilizamos el método Math.max con el operador de propagación (...).
// 3. Retornamos el valor máximo.
const numeroMayor = (arr) => {
return Math.max(...arr);
};
// Ejemplo de uso:
console.log(numeroMayor([3, 9, 1, 11, 7])); // 11
Ejercicio 7: Función declarada para invertir una cadena
Descripción del problema
Crea una función que invierta el orden de los caracteres de una cadena de texto. Por ejemplo, "Hola"
se convierte en "aloH"
// 1. Declaramos la función 'invertirCadena'.
// 2. Convertimos la cadena a un arreglo con split, lo invertimos con reverse y unimos con join.
function invertirCadena(cadena) {
return cadena.split("").reverse().join("");
}
// Ejemplo de uso:
console.log(invertirCadena("Hola")); // aloH
Ejercicio 8: Función anónima para filtrar números pares
Descripción del problema
Crea una función anónima que, dado un arreglo de números, retorne un nuevo arreglo solo con aquellos que sean pares.
// 1. Definimos la función anónima y la asignamos a 'filtrarPares'.
// 2. Usamos el método filter para iterar y retornar únicamente los elementos pares.
const filtrarPares = function (arr) {
return arr.filter((num) => num % 2 === 0);
};
// Ejemplo de uso:
console.log(filtrarPares([1, 2, 3, 4, 5, 6])); // [2, 4, 6]
Ejercicio 9: Arrow function para calcular el promedio de un arreglo
Descripción del problema
Implementa una arrow function que reciba un arreglo de números y retorne su promedio.
// 1. Creamos la arrow function 'calcularPromedio'.
// 2. Sumamos todos los elementos y dividimos por la cantidad de valores.
const calcularPromedio = (arr) => {
const suma = arr.reduce((acumulador, valor) => acumulador + valor, 0);
return suma / arr.length;
};
// Ejemplo de uso:
console.log(calcularPromedio([10, 20, 30, 40])); // 25
Ejercicio 10: Función declarada para verificar si un número es primo
Descripción del problema
Crea una función que determine si un número es primo. Un número es primo si solo es divisible por 1 y por sí mismo.
// 1. Declaramos la función 'esPrimo(n)'.
// 2. Si n es menor que 2, no es primo.
// 3. Verificamos divisiones hasta la raíz cuadrada de n para optimizar.
function esPrimo(n) {
if (n < 2) {
return false;
}
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
// Ejemplo de uso:
console.log(esPrimo(7)); // true
console.log(esPrimo(10)); // false
Preguntas frecuentes (FAQs)
¿Cuál es la diferencia principal entre una función declarada y una función anónima?
Las funciones declaradas pueden ser invocadas antes de su definición gracias al hoisting, mientras que las funciones anónimas se utilizan habitualmente asignándolas a variables u objetos y, por lo general, deben definirse antes de invocarse.
¿Las arrow functions pueden acceder a su propio this
?
Las arrow functions no tienen su propio this
. Heredan el this
del contexto donde se crean. Esto las hace ideales para casos donde no se desea redefinir el contexto.
¿Cuál es la ventaja de usar arrow functions sobre funciones anónimas o declaradas?
La principal ventaja es una sintaxis más concisa y la forma en que tratan el this
, lo cual evita comportamientos inesperados al trabajar con eventos o callbacks.
¡Felicidades! Ahora dominas mejor las funciones en JavaScript y has practicado con ejercicios que abarcan distintas situaciones comunes en el desarrollo web. Sigue reforzando tus habilidades con más práctica y nuevos retos. Recuerda que la constancia y la curiosidad son claves para convertirte en un experto.
Si te ha gustado este contenido y quieres seguir aprendiendo sobre JavaScript y otras tecnologías, visita nuestro blog para descubrir más artículos, tutoriales y ejercicios que te ayudarán a avanzar en tu camino como desarrollador. ¡Te esperamos!