DEV Community

Cristian Fernando
Cristian Fernando

Posted on

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

Explica este código JavaScript

function nums(a, b) {
  if
  (a > b)
  console.log('a is bigger')
  else 
  console.log('b is bigger')
  return 
  a + b
}

console.log(nums(4, 2))
console.log(nums(1, 2))
Enter fullscreen mode Exit fullscreen mode
  • A:a is bigger, 6 y b is bigger, 3
  • B: a is bigger, undefined y b is bigger, undefined
  • C: undefined y undefined
  • D: SyntaxError

Respuesta en el primer comentario.


Oldest comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
B: a is bigger, undefined y b is bigger, undefined

Después de una expresión javascript pone automáticamente un punto y coma para indicar al interprete que dicha expresión finalizo en una línea de código en concreto. Esto se denomina Insercción automática de punto y coma.

Al llegar al return el programador ve esto:

  return 
  a + b
Enter fullscreen mode Exit fullscreen mode

Pero el interprete reconoce la palabra return con el fin de una expresión, por lo tanto, aunque no lo veas, javascript hará esto:

  return;
  a + b; // jamás llegamos a ejecutar esta línea
Enter fullscreen mode Exit fullscreen mode

Y ya sabemos que en una función al encontrar la palabra return todo el código posterior que pueda haber no se ejecuta, ni si quiera se evalua, entonces jamás se llegara a hacer la operación a + b.

Cuando una función no retorna nada explicitamente, javascript hace que el return arroje un undefined de manera implicita.