Aprende a invocar funciones antes de su declaración en JS

Autor: | Última modificación: 15 de marzo de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el apasionante mundo del desarrollo web, dominar JavaScript es esencial. Es el lenguaje de programación que potencia la interacción en la mayoría de los sitios web modernos. Para aquellos que están dando sus primeros pasos en la programación, entender conceptos como invocar funciones antes de su declaración puede parecer desafiante. Por eso, en este post, te ayudaremos a desmitificar este tema y a convertirte en un experto en JavaScript.

¿Qué significa invocar funciones antes de su declaración?

Cuando hablamos de invocar funciones antes de su declaración en JavaScript, nos referimos a la capacidad de llamar o ejecutar una función antes de haberla definido en el código. Este concepto puede sonar un poco extraño al principio, pero es un comportamiento fundamental del lenguaje.

Declaraciones de funciones vs. expresiones de función

Para comprender mejor cómo funciona esto de invocar funciones antes de su declaración, es importante distinguir entre dos formas comunes de definir funciones en JavaScript: las declaraciones de funciones y las expresiones de función.

Declaraciones de funciones

Las declaraciones de funciones son la forma tradicional de definir una función en JavaScript. Aquí tienes un ejemplo:

function saludar() { 
console.log("¡Hola, mundo!"); 
}

Con las declaraciones de funciones, JavaScript permite invocar la función antes de su declaración sin ningún problema. Esto se debe a que las declaraciones de funciones se «elevan» al principio del ámbito en el que están definidas, lo que significa que son reconocidas y están disponibles antes de que se ejecute cualquier código en ese ámbito.

Expresiones de función

Las expresiones de función, por otro lado, son un poco diferentes. Aquí tienes un ejemplo:

const saludar = function() { 
console.log("¡Hola, mundo!"); 
};

Con las expresiones de función, no puedes invocar funciones antes de su declaración, ya que estas no se elevan como las declaraciones de funciones. Intentar hacerlo resultará en un error.

Ejemplo práctico

Para ilustrar esto con un ejemplo práctico, consideremos el siguiente código:

saludar(); // ¡Hola, mundo! 
function saludar() { 
console.log("¡Hola, mundo!"); 
}

En este caso, la función saludar se invoca antes de su declaración, pero debido a que es una declaración de función, JavaScript la reconoce y ejecuta sin problemas.

Por otro lado, si intentamos hacer lo mismo con una expresión de función, obtendremos un error:

saludar(); // Error: saludar is not a function 
const saludar = function() { 
console.log("¡Hola, mundo!"); 
};

Funciones anónimas y variables con var

Es importante destacar que las expresiones de función pueden ser anónimas, es decir, no tienen un nombre específico. En el ejemplo anterior, la función se asigna a la variable saludar, pero también podríamos haberla declarado de esta manera:

const saludar = function() { 
console.log("¡Hola, mundo!"); 
};

Además, es relevante mencionar que si utilizas var para declarar una variable en lugar de const o let, podrás invocarla antes de su declaración, pero este comportamiento se considera obsoleto y se recomienda evitarlo en código moderno.

El siguiente ejemplo

Para comprender mejor la importancia de este concepto, consideremos un escenario común en el desarrollo web. Imagina que estás creando una aplicación web compleja con múltiples archivos de JavaScript. Puedes tener funciones que se utilizan en diferentes partes de tu código, y es posible que necesites invocarlas antes de su declaración para que todo funcione correctamente.

Como ya hemos mencionado, en situaciones donde tienes funciones que se utilizan en diferentes partes de tu código, es posible que necesites invocarlas antes de su declaración para garantizar que todo funcione correctamente. Sin embargo, ten en cuenta que abusar de esta práctica puede tener consecuencias no deseadas, especialmente cuando se trata de variables globales.

Las variables globales son aquellas que se declaran fuera de cualquier función y están disponibles en todo el ámbito de tu programa. Si tienes una función que depende de una variable global y tratas de invocar esa función antes de que la variable se haya inicializado, podrías encontrarte con errores difíciles de rastrear.

En este caso, JavaScript no arrojará un error al invocar la función saludar antes de declarar la variable nombre, pero el resultado será Hola, undefined!, ya que nombre se declara con var. Esto significa que se «eleva» al principio del ámbito, pero permanece indefinido hasta que se le asigna un valor.

En resumen, invocar funciones antes de su declaración es posible en JavaScript, pero debes comprender la diferencia entre declaraciones de funciones y expresiones de función.

Te enseñamos más

En KeepCoding, estamos comprometidos con ayudarte a dominar JavaScript para convertirte en un desarrollador web de alto nivel. Si deseas explorar más sobre este tema y muchos otros, te invitamos a unirte a nuestro Desarrollo Web Full Stack Bootcamp. Al finalizar la formación, tendrás las habilidades y el conocimiento necesarios para prosperar en la industria tecnológica, que ofrece salarios competitivos y una estabilidad laboral envidiable. ¡Anímate a dar el siguiente paso en tu carrera e inscríbete ahora mismo!

Artículos ms leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado