Función Pura VS Función Impura en JavaScript
En esta página:
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:
- Como Detectar Si El Usuario Cambia de Pestaña En El Navegador Con JavaScript
- Mostrar un Mensaje en Una Determinada Fecha con Javascript (Con Imagen)
- 5 Características de JavaScript en Desuso y sus Alternativas
- Como Crear un Reloj Digital (Numérico) con JavaScript
- Como crear el Efecto modo Oscuro – Claro en un Sitio Web (Mantener el modo seleccionado en las demás Páginas)
- Como Verificar si 2 Contraseñas Coinciden o son Iguales con JavaScript
- 5 Cosas que Talvez no Sabías sobre try-catch-finally en JavaScript
- Exportar e Importar Módulos en JavaScript
- Generar una URL Amigable (Slug) usando un determinado Texto con JavaScript
- Implementación de Queues (Colas) en JavaScript
- 5 Conceptos de JavaScript que los Desarrolladores Principiantes deben saber
- El método flatMap() de JavaScript
- Puedes leer más en la categoría JavaScript
Asimismo te invito a escuchar el Podcast: “Con Que Lenguaje De Programación Comenzar Para El Desarrollo Web” y “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:
1 2 3 4 |
// Función Pura en JavaScript const usuario = (nombre) => 'Hola ${nombre}'; |
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:
1 2 3 4 5 6 7 8 9 10 11 |
// Función Impura en JavaScript const usuarios = ["Carlos", "Pedro"]; function agregarUsuario(usuario) { usuarios.push(usuario); return usuarios; } console.log(agregarUsuario("Luis")); |
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.
- JavaScript
- 25-09-2022
- 26-09-2022
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)