DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js💊| #101: Explica este código JavaScript

Explica este código JavaScript

Dificultad: Avanzado

¿Cuál de las siguientes funciones es pura?

//#1
const returnNumber = num => num;
console.log(returnNumber(Math.random()));

//#2
const returnDate = date => date;
console.log(returnDate(Date.now()));

//#3
const getApi = (api) => {
  return fetch(api)
    .then(res => res.json())
    .then(response => console.log(response))
}
console.log(getApi("https://jsonplaceholder.typicode.com/users"));

//#4
const exp = (x, y) => x ** y;
console.log(exp(2,8));
Enter fullscreen mode Exit fullscreen mode

A. getApi y returnNumber son funciones puras
B. Ninguna es una función pura
C. Todas son funciones puras
D. Solo exp es una función pura

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
D. Solo exp es una función pura

Una función pura es aquella que:

  • Dados los mismos argumentos siempre retorna el mismo valor independientemente de las veces que llamemos a la función.
  • No tiene que tener efectos secundarios.

Solo la función exp del ejemplo cumple ambas condiciones.

returnNumber no puede ser pura puesto que recibe le mandamos un número random como argumento, esto hara que siempre regrese valores diferentes.

returnDate tampoco pueder ser una función pura puesto que Date.now() regresa valores diferentes siempre.

getApi no puede ser pura por que dependemos de una API externa que no sabemos si el día de mañana seguira funcionando bien o no, no podemos estar seguros si el servidor tendrá problemas y nos devuelva información contaminada o incorrecta.