AD

¿Ya dominas lo básico? Un curso estructurado de JavaScript es la vía rápida para dar el salto.

Ver cursos de JavaScript en Udemy

Enlace de afiliado. No te cuesta nada extra.

🟨Lecciones de JavaScript
Lección 30 / 69

Funciones de orden superior (pasar una función como argumento)

En esta lección aprenderás la idea de función de orden superior en JavaScript para escribir código flexible pasando funciones como argumentos. Está dirigida a quien busca «qué es una función de orden superior en JavaScript» o «comparador de sort en JavaScript».

Poder pasar una función como argumento de otra se llama función de orden superior. Imagínalo así: «indica solo el método de hacer el trabajo y deja que el otro lo haga». Pasar una regla de comparación a .sort() es el ejemplo clásico. De hecho, .map() y .filter(), que ya conoces, son también funciones de orden superior que reciben una función como argumento.

El código de ejemplo define una función de comparación llamada byDescending y se la pasa a .sort(), como en nums.sort(byDescending). El orden lo decide si la función de comparación devuelve un valor positivo o negativo: con solo reescribir esta función alternas libremente entre ascendente y descendente.

Un tropiezo habitual al empezar es que usar .sort() sin función de comparación compara incluso los números como cadenas, produciendo un orden no deseado. [10, 2, 1].sort() acaba ordenado alfabéticamente y no numéricamente, así que para ordenar números siempre debes pasar una función de comparación.

En el desarrollo real, la idea de función de orden superior resulta útil al construir una pantalla de listado donde el usuario elige el criterio de ordenación (por precio, por novedad, etc.). Es una idea importantísima que sostiene el estilo del JavaScript moderno.

La idea de pasar una función de retorno (callback) se usa igual en la gestión de eventos (qué ocurre al pulsar un botón) y en el código asíncrono: un concepto importante e inevitable para entender JavaScript.

JavaScript
SALIDA

💡 Todo lo que pases a console.log() aparece en la salida de abajo.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)