DEV Community

Discussion on: Paracetamol.js💊| #133: Explica este código JavaScript

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
B. Hola Ana, Uncaught ReferenceError: saludo is not defined

En JavaScript podemos escribir funciones de dos maneras:

  • Funciones declaradas: con la palabra reservada function (sin guardar el resultado en ninguna variable)
  • Funciones expresadas: puede ser con la palabra reservada 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 ejemplo fn); 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:

const fn = function(nombre){
  return `Hola ${nombre}`
}
console.log(fn("Ana"));
console.log(fn("Pedro"));
Enter fullscreen mode Exit fullscreen mode

De esta manera usamos siempre el nombre de la función y ya no hay cabida a confusiones posibles.