¿Te gustaría Javascript desde cero?
Tenemos los diplomados que necesitas. ¡Haz clic aquí!
El concepto de JavaScript Hoisting es uno de los conceptos más peculiares que tiene JavaScript . ¿Que es el JavaScript Hoisting? . Es una de las características que permite a JavaScript realizar alguna de sus operaciones mágicas sobre el código permitiendo ejecuciones muy curiosas sin que el lenguaje nos de ningún error . Vamos a ver un par de ejemplos sencillos partiendo de un código elemental:
var numero=5;
console.log(numero);
Este código es prácticamente el ejemplo de holamundo en JavaScript si lo ejecutamos con node . La consola nos mostrará el resultado:
JavaScript Hoisting
Las situaciones curiosas comienzan cuando cambiamos ese código por lo siguiente:
numero=5; var numero; console.log(numero);
En este código defino una variable numero y la igualo a 5 , luego vuelvo a definir la variable y no la asigno ningún valor y finalmente imprimo la variable por la consola . Todos esperamos un valor de null o de undefined en la consola sin embargo al ejecutarlo , sorpresa sigue imprimiendo 5 por la consola:
¿A que es esto debido ? . Esto es debido a lo que se denomina JavaScript Hoisting o (levantamiento) . Javascript procesa el programa en dos pasos el primer paso es el de compilación en el cual revisa el código y asigna las variables de una forma más ordenada “según su forma de entenderlo” . En este caso lo que esta pasando es que tenemos 3 lineas de código:
JavaScript y su compilación
Las capacidades de JavaScript Hoisting hacen que cuando el compilador pase . La estructura del código sea modificada y la declaración de variable sea subida a la primera linea:
De esta manera en la siguiente fase que es la de interpretación todo funciona correctamente y el código se ejecuta de forma natural.
JavaScript Hoisting y Funciones
Esto es lo mismo que sucede en un código como este :
hola(); function hola() { console.log("hola") } Estamos invocando la función antes de declararla , sin embargo JavaScript no tiene ningún problema al ejecutarlo debido al JavaScript Hoisting que sube la declaración de la función arriba del todo. Todo parece muy fácil pero JavaScript tiene mil trucos . Si nosotros cambiamos la declaración de la función por "named function"
fhola(); var fhola=function hola() { console.log("hola") } JavaScript no hace hoisting de una función que esta definida como una variable y el programa fallará.
JavaScript esta lleno de curiosidades.
Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.
¿Te gustaría JavaScript desde cero?
Tenemos los diplomados que necesitas. ¡Haz clic aquí!