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))
- A:
a is bigger
,6
yb is bigger
,3
- B:
a is bigger
,undefined
yb is bigger
,undefined
- C:
undefined
yundefined
- D:
SyntaxError
Respuesta en el primer comentario.
Top comments (1)
Respuesta:
B:
a is bigger
,undefined
yb 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:Pero el interprete reconoce la palabra
return
con el fin de una expresión, por lo tanto, aunque no lo veas, javascript hará esto: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óna + b
.Cuando una función no retorna nada explicitamente, javascript hace que el
return
arroje unundefined
de manera implicita.