DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated on

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

Explica este código JavaScript

const value = { number: 10 };

const multiply = (x = { ...value }) => {
  console.log((x.number *= 2));
};

multiply();
multiply();
multiply(value);
multiply(value);
Enter fullscreen mode Exit fullscreen mode
  • A: 20, 40, 80, 160
  • B: 20, 40, 20, 40
  • C: 20, 20, 20, 40
  • D: NaN, NaN, 20, 40

Respuesta en el primer comentario.


Top comments (3)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

Respuesta
C: 20, 20, 20, 40

Hay que concentrarse en el orden en que se llaman las funciones para comprender que es lo que pasa acá.

Primera llamada:
A multiply no le pasamos ningún parámetro, por ende, toma el parámetro por defecto x que es un objeto desestructurado cuya key number tiene el valor de 10. Entonces x.number *= 2 nos retorna 20.

Segunda llamada:
Similar a la primera llamada, hacemos lo mismo, entonces obtenemos nuevamente 20.

Tercera llamada:
A multiply en su llamada le pasamos el argumento value por lo que la función ahora ignora el parámetro por defecto. number es nuevamente 10, por ello el resultado de la multiplicación nuevamente será 20.

Cuarta llamada:
Similar a la tercera llamada, pero el valor de value actual es 20 que fue el resultado de la tercera llamada, entonces ahora x.number *= 2, será 40.

Collapse
 
programamkenya profile image
programa mkenya

fernando te estoy siguiendo porque ahorita aprendo espanol. Va a estar interesante leyendo articulos sobre el codigo en Espanol

Collapse
 
duxtech profile image
Cristian Fernando

Muchas gracias por tu comentario! Espero que mis posts te sirvan o ayuden. Un saludo!