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.


Discussion (3)

Collapse
duxtech profile image
Cristian Fernando Author • Edited on

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 Author

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