Ejercicio: Funciones
Objetivo
Escribir seis funciones: saludos con valor por defecto, promedios con parámetros rest, una función flecha, un callback, un contador con closure y un detector de palíndromos.
Antes de empezar
Estas funciones no necesitan una página. Prueba con console.log en el editor y pega tu código en el comprobador.
Pasos
Marca cada paso a medida que lo completes. Tu avance se guarda en este navegador.
💡 Pista 1: la closure
Declara let cuenta = 0; dentro de crearContador, y devuelve una función que haga cuenta++ y return cuenta.
💡 Pista 2: el palíndromo
Normaliza primero: texto.toLowerCase().replaceAll(" ", ""). Luego compáralo con su versión invertida (split("").reverse().join("")).
🔎 Comprueba tu trabajo
Pega tu código y pulsa Comprobar. La revisión ocurre en tu navegador; nada se envía a ningún sitio. Cada punto en rojo incluye una pista.
✅ Ver una solución de ejemplo
Intenta resolverlo antes de mirar. Tu versión puede ser distinta y también correcta.
function saludar(nombre = "amigo") {
return `Hola, ${nombre}!`;
}
function promedio(...numeros) {
if (numeros.length === 0) return 0;
let suma = 0;
for (const n of numeros) suma += n;
return suma / numeros.length;
}
const cuadrado = (n) => n * n;
function aplicar(valor, funcion) {
return funcion(valor);
}
function crearContador() {
let cuenta = 0;
return function () {
cuenta++;
return cuenta;
};
}
function esPalindromo(texto) {
const limpio = texto.toLowerCase().replaceAll(" ", "");
return limpio === limpio.split("").reverse().join("");
}
💡 🏁 Reto extra (opcional)
Escribe componer(f, g) que devuelva una nueva función que aplique primero g y luego f (componer(f, g)(x) equivale a f(g(x))). Pruébala con cuadrado y una función que sume 1.