
Juan David Becerra Grajales
Pregunta¡Amigos hola! ¿Cuándo usar funciones declarativas y cuándo usar funciones anónimas?
-
Como closures
-
Como argumentos de otras funciones
-
Como (IIFE) o sea como expresiones de función que se invocan de manera inmediata.

Felipe Schneeberger
Creo que es mas facil entender donde se ocupan las funciones anonimas, ya que comunmente si vienes de otro lenguaje de programación, la mayoria es declarativo.
//Esto es una función declarada en la libreria de Mongo, para bsucar datos de una colección collection.find({}, //esta funcion es anonima y es el callback de la funcion find() function(error, result) { if (!error) { console.log(`Completado con exito: ${result.ok}`); } else { console.log(`Ocurrio un error: ${error}`); } }, );
Espero que se entienda.

Christopher Eder Chantres Justo
Hola Juan David, en esta clase lo explican bien sobre cuándo usar las funciones declarativas y cuándo usar las funciones anónimas

Fabricio Micheli
Bueno la principal diferencia es el hoisting, en el caso de las funciones declaradas se cargan siempre al inicio del programa para que estén disponibles en cualquier momento del mismo. En el caso de las funciones como expresión, solamente están disponibles una vez que se declaran ya que están asociadas a una variable que nos sirve de puntero para la ejecución de la función. Además, como están declaradas en el ámbito de una variable, las mismas son capaces de conservar las variables declaradas dentro de la función (en el ámbito de la misma). También las funciones como expresión son ventajosas por las siguientes razones:

Ederson Felipe Lopez Bolivar
https://platzi.com/tutoriales/2327-javascript-practico/11322-7-maneras-de-declarar-una-funcion/
aqui pueden ver los tipos de funciones en JS muy simple

Ederson Felipe Lopez Bolivar
En el lo basico sirve para lo mismo , asi que no importa mucho cual elijas , al final son funciones . En temas basicos su unica diferencia es el hoisting
Otro criterio puede ser la legibilidad , en casos como los callbacks , eventos de html , en estos casos las funciones expresivas son mejor porque te evita escribir demás caracteres lo que lo hace más legible.
En temas algo avanzados con arrow functions existen cosas como que el contexto de THIS cambia dependiendo de la forma en la creemos la función. (trato de explicarlo lo mas simple pero es complejo)

Uriel Barranco Robles
@Clair He leido sobre el tema, pero no he encontrado si hay casos en concreto donde seria mas conveniente utilizar una u otra. Una desventaja que se me ocurre pero aun no he probado, es que si a esa variable despues le asignamos un valor, entonces la funciona anonima se desecharia y ya no la podriamos utiilizar. Es solo una teoria que el dia de mañana probare. Aunque seguire investigando o si alguien con mas experiencia nos ayuda seria genial!!!!

Cristian Mauricio Cavanzo Arias
@uribarranco Si eso quedo claro, pero hay casos especiales para usar cada una de ellas?

Uriel Barranco Robles
En la clase 6 que es una lectura te explica la diferencia en concreto de los dos tipos de funciones:
Diferencias: A las funciones declarativas se les aplica hoisting, y a la expresión de función, no. Ya que el hoisting solo se aplica en las palabras reservadas var y function.
Lo que quiere decir que con las funciones declarativas, podemos mandar llamar la función antes de que ésta sea declarada, y con la expresión de función, no, tendríamos que declararla primero, y después mandarla llamar.

Cristian Mauricio Cavanzo Arias
Tengo la misma duda