Explica el siguiente código JavaScript
Dificultad: Intermedio
const fn = function saludo(nombre){
return `Hola ${nombre}`
}
console.log(fn("Ana"));
console.log(saludo("Pedro"));
A. Hola Ana
, Hola Pedro
B. Hola Ana
, Uncaught ReferenceError: saludo is not defined
C. Uncaught ReferenceError: fn is not defined
D. Ninguna de las anteriores
Respuesta en el primer comentario.
Top comments (1)
Respuesta:
B.
Hola Ana
,Uncaught ReferenceError: saludo is not defined
En JavaScript podemos escribir funciones de dos maneras:
function
(sin guardar el resultado en ninguna variable)function
o con una función de tipo flecha siempre y cuando se almacene el resultado en una variable.Cuando tenemos una función expresada, la función puede tener un nombre, (en el ejemplo
saludo
), pero también la variable donde se almacena su resultado puede tener otro nombre, (en el ejemplofn
); todo esto es perfectamente valido para JavaScript.El problema recae en como llamamos a la función, ¿con su nombre propio o con el nombre de la variable que guarda su resultado?
Para estos casos el interprete de JavaScript tomara siempre el nombre de la variable para poder llamar a la función, es por este motivo que cuando intentamos llamar a la función con
saludo
obtenemos un error de referencia.Para evitar confusiones se recomienda que la función se anónima, de la siguiente manera:
De esta manera usamos siempre el nombre de la función y ya no hay cabida a confusiones posibles.