Función Pura VS Función Impura en JavaScript

4 minuto(s)

JavaScript se encuentra entre los 10 lenguajes de programación más populares como puedes ver en nuestro ranking mensual con Los 20 Lenguajes de Programación más Populares y siempre hay cosas nuevas que podemos aprender de este genial lenguaje muy utilizado por los desarrolladores Frontend, si eres un usuario de JavaScript, este Post te edificará y te mejorará como profesional. En este Post te hablaremos y compararemos una Función Pura vs Función Impura en JavaScript, vamos con ello.

Antes de continuar te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “Con Que Lenguaje De Programación Comenzar Para El Desarrollo Web” “5 Habilidades que Debe Tener un Desarrollador Backend” (Anchor Podcast)

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: Función Pura VS Función Impura en JavaScript.

Antes de hablar sobre una función pura y una impura, veamos algunas reglas claves que debe tener una función.

Reglas Clave de Una Función

Mientras escribimos funciones, debemos tener cuidado con ciertas ondiciones. Tenemos que asegurarnos que nuestras funciones son:

Predecibles: Producen una salida predecible para la misma entrada.

Reutilizables: Se pueden reutilizar las funciones en varios lugares sin alterar su comportamiento y el comportamiento del entorno en donde se llama.

Legibles: La funciones deben ser comprobables como unidades independientes.

Comprobables: Las funciones deben ser comprobables como unidades independientes.

Ahora veamos que es una función pura y una impura.

Función Pura

Una función pura tiene todas las reglas claves discutidas anteriormente. Es predecible (siempre produce el mismo resultado para la misma entrada) y también es reutilizable y comprobable:


En el código anterior, podemos ver que la función siempre devolverá la misma salida para la misma entrada porque no tiene ninguna dependencia externa que cambie su salida (o podemos decir que no tiene efectos secundarios).

Función Impura

Una función impura es una función que contiene uno o más efectos secundarios:


En el código anterior, la salida de la función es predecible y también devuelve la misma salida para la misma entrada, pero aún así, no es una función pura. Es una función impura porque modifica la variable usuarios e introduce efectos secundarios en mi función agregarUsuario()

Efectos Secundarios

Se produce un efecto secundario en un programa cada vez que usas código externo en tu función y como resultado afecta la capacidad de la función para realizar sus tareas. A continuación algunos ejemplos de efectos secundarios:

  • Modificar una variable global
  • Modificar un argumento
  • Realización de solicitudes HTTP
  • Manipulación del DOM
  • Leer/escribir archivos

Una función pura debe ser predecible y sin efectos secundarios. Si alguno de estos criterios no se cumple, estamos ante una función impura.

Funciones Javascript Puras vs Impuras

JavaScript cuenta con las siguientes funciones impuras incorporadas:

  • Math.random()
  • Date.now()
  • array.splice()
  • array.push()
  • array.sort()

Asimismo JavaScript cuenta con las siguientes funciones puras incorporadas:

  • array.map()
  • array.filter()
  • array.concat()
  • array.reduce()
  • array.slice()
  • Math.floor()
  • string.toLowerCase()
  • array.each()
  • array.every()

Conclusión

Idealmente podemos, pero las aplicaciones con solo funciones puras pueden no hacer mucho. El código debe introducir efectos secundarios como llamadas HTTP, operaciones de Entrada/Salida, manipulación de DOM y muchos más. Como mejor práctica, podemos tratar de usar tantas funciones puras como podamos. Aísla las funciones impuras (efectos secundarios) tanto como sea posible. Mejorará mucho la legibilidad, la depuración y la capacidad de prueba de tu código.

Nota (s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.