¿Funciones Declarativas o Funciones Expresivas? En Javascript tenemos las funciones se declaran como declarativas o expresivas. Pero, ¿Cuál de ellas podemos utilizar?

Pasemos a explicar ambas funciones y qué utilidad nos trae cada una.

Funciones declarativas

Por el lado de las funciones declarativas son aquella funciones donde utilizas la palabra reservada function al inicio de la línea. Por ejemplo:

Funciones Declarativas o Funciones Expresivas: Declarativas
Ejemplo de código usando la función declarativa

Este tipo de funciones utiliza el hoisting (almacenamiento en memoria), un proceso donde lleva las declaraciones de variables y funciones al comienzo del código, en especial se aplica donde se usaron las palabras reservadas var y function.

Otro dato a tomar en cuenta es que al tener hoisting, puede ser llamada antes de que sea declarada. Es decir, si tu función ha sido llamada y no declarada antes, causará errores.

Funciónes Expresivas

Las funciones de expresión son aquellas funciones que se guardan en una variable con las palabras reservadas var, const o let. Por ejemplo:

Funciones Declarativas o Funciones Expresivas: Expresivas
Ejemplo de código usando la funciónes expresivas

Diferencias entre las funciones declarativas y las funciones expresivas

Como verán, en ambos tipos de de declarar a la función es el mismo procedimiento. La única cosa que separa a la una de la otra, es su forma de declararla.

Una vez aclarado los conceptos de ambas funciones, surge otra pregunta: ¿Qué diferencias hay entre las funciones declarativas y las funciones de expresión?

Aquí dejo una tabla para anotar las diferencias que hay entre ellas.

Funciones DeclarativasFunciones Expresivas
Se les aplica hoistingNo se les aplica hoisting
Pueden llamarse antes de que la función sea declaradaSe declara primero la funcion y luego se llama
Diferencias entre las funciones declarativas y las funciones expresivas

Si deseas aprender más acerca las funciones en javacript, te invito a revisar la documentación de MDN.


Avatar de darkusphantom

Sigueme en mis redes sociales para más contenido


darkusphantom Desarrollo Web, Programación ,

One Comment

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *