Saltar al contenido
Curso de JavaScript
Todos los cursos

Ejercicio: Funciones

  • ⏱ 40 minutos
  • 📶 Nivel: principiante

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.

▶ Prueba tu código aquí (opcional)
Consola

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.

    app.js
    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.