Cuando estamos aprendiendo a escribir en un nuevo lenguaje de programación, nos topamos muchas veces con errores que surgen del modo en que se lee este lenguaje. Por ello, normalmente existe un orden lógico que debemos seguir para escribir y definir nuestros elementos. De esta forma, no habrá errores a la hora de ejecutarlo. En este post, te enseñaremos cómo funciona el orden para escribir funciones en JavaScript y cómo varía de una situación a otra.
¿Por qué hay un orden para escribir código?
El orden en el que se debe escribir un código en cualquier lenguaje de programación surge de la forma en la que el programa lee dicho código. Es decir, como la mayoría de programas leen el código de izquierda a derecha y de arriba abajo, la jerarquía de los valores normalmente debe seguir esta lógica.
Este límite de lectura nos fuerza a, por ejemplo, definir el valor de una variable antes de utilizar dicha variable en una función. Esto sucede porque el programa debe saber qué valor tiene esta variable dentro de la función antes de poder ejecutarla. Si la variable estuviera más abajo que la función, el programa leería una variable que no ha encontrado antes. Por este tipo de límites, suelen ocurrir muchos errores de ejecución de código.
¿Hay un orden para escribir funciones en JavaScript?
A la hora de escribir funciones en JavaScript, hay ocasiones en las que el orden en el que las escribimos cuenta y otras en las que no. A continuación, te explicamos ambas situaciones:
Dentro de una clase
El orden para escribir funciones en JavaScript o, en su defecto, métodos no es relevante dentro de una clase. Esto sucede porque normalmente solemos insertar el constructor encima de todos los parámetros de la clase. Muchas veces, dentro de este elemento llamamos métodos que ni si quiera hemos definido o creado.
Te ponemos un ejemplo. Observa que, en las siguientes líneas de código que introducen a la clase, hemos llamado a un método setup y a un método matchDaySchedule. Estos métodos todavía no los hemos configurado. Sin embargo, los podemos llamar antes de hacerlo.
class League {
constructor (name, teams, config = { }) {
this.name = name;
this.setup (config);
this.matchDaySchedule = [ ];
}
De este modo, el orden para escribir funciones en JavaScript cuando están dentro de una clase no importa. Puedes definir la función al final de la clase y llamarla al inicio sin ningún problema.
Pintada en la pantalla (asignación)
El orden para escribir funciones en JavaScript sí que importa cuando vamos a definir que su resultado se pinte en pantalla. Es decir, no podemos llamar a un comando console.log de una función sin antes escribir dicha función. Esto sucede especialmente cuando utilizamos asignaciones. A continuación te mostramos un ejemplo:
console.log (hello());
const hello = () => hi
Al escribir estas dos líneas de código, estamos llamando y pintando en la pantalla la variable hello antes de definir esta variable en nuestro proyecto. Entonces, cuando intentemos ejecutar este código, veremos en el debug console el siguiente error:
ReferenceError: Cannot access ‘hello’ before initializaion
Ten presente que, como has visto en nuestro post sobre escribir funciones en JavaScript, hay dos formas de escribir dichas funciones. El error sucede cuando asignamos una variable a la función, no cuando utilizamos la palabra clave function. Esto sucede porque, en este caso, ‘hello’ todavía no está registrado en la memoria.
Es decir, el error de referencia no ocurre cuando el valor se le asigna a una función nativa, como la que te presentamos a continuación:
console.log (hi ());
function hi () {return ‘hi’}
En este tipo de escritura, el orden para escribir funciones en JavaScript no importa. Puedes invocar la función y luego definirla. Pero cuando lo haces con asignaciones de variables, la variable tiene que estar definida antes de ser invocada. Si no lo haces, esta variable es igual a undefined.
Ahora que sabes cómo se utiliza el orden para escribir funciones en JavaScript, el siguiente paso en tu camino hacia dominar este lenguaje de programación es poner tus conocimientos en práctica. Para ello, te recomendamos nuestro Desarollo Web Full Stack Bootcamp, en donde encontrarás la mezcla perfecta entre teoría y práctica. Además, allí aprenderás en pocos meses todo lo que necesitas para ser un experto en desarrollo web, incluyendo JavaScript. ¡Anímate a dar el siguiente paso e inscríbete!