En este bloque veremos qué es el Hoisting, un concepto básico pero que a veces confunde un poco a las personas que usan el lenguaje Javascript y que incluso puede inducir a errores y fallos en la interpretación del funcionamiento de los programas.
Luego veremos el maravilloso mundo de las funciones Javascript, elementos de primer nivel en el lenguaje. Veremos temas básicos como las funciones anónimas, cómo podemos definir funciones y qué diferencias en ellas tenemos, según el concepto de hoisting aprendido en el anterior punto.
Por último nos dedicaremos un largo tiempo a entender cómo las funciones han sido usadas en Javascript como un patrón de desarrollo de diversas facetas. En este sentido veremos qué son los closures en Javascript y cómo este concepto importa a la hora de usar las funciones. Cómo podemos crear elementos privados y módulos en el lenguaje, usando funciones.
Por último hablaremos de un patrón muy usado en el lenguaje IIFE, que sirve para crear funciones que se ejecutan inmediatamente, lo que nos puede facilitar nuevas utilidades dentro de los programas Javascript.