Hoisting y coerción
Clase 7 de 99 • 30 días de JavaScript
Contenido del curso
Día 1
Día 2
Día 3
Día 4
Día 5 - Checkpoint
Día 6
Día 7
Día 8
Día 9
Día 10 - Checkpoint
Día 11
Día 12
Día 13
Día 14
Día 15 - Checkpoint
Día 16
Día 17
Día 18
Día 19
Día 20 - Checkpoint
Día 21
Día 22
Día 23
Día 24 - Checkpoint
Día 25
Día 26
Día 27
Día 28
Día 29
Día 30
Live Class
El hoisting es un comportamiento de JavaScript en el que las declaraciones de variables y funciones son movidas al comienzo del ámbito actual antes de que cualquier otro código sea ejecutado. Esto significa que las declaraciones de variables y funciones pueden ser utilizadas antes de haber sido declaradas en el código.
Por ejemplo, si tenemos el siguiente código:
console.log(x); var x = 5;
JavaScript interpreta este código como si estuviera escrito de la siguiente manera:
var x; console.log(x); x = 5;
Esto significa que cuando se ejecuta el código, el valor de x será undefined en la primera línea, ya que la declaración de x ha sido movida al comienzo del ámbito.
Sin embargo, es importante tener en cuenta que las asignaciones no son movidas al comienzo del ámbito, sólo las declaraciones. Esto significa que el siguiente código dará un error:
console.log(x); x = 5;
Por otro lado, coercion es el proceso en el cual JavaScript intenta convertir automáticamente un valor de un tipo a otro, para que puedan ser comparados o operados. Esto puede dar lugar a algunos resultados inesperados si no se tiene en cuenta.
Por ejemplo, si comparamos un número con un string:
console.log(1 == "1")
El resultado sería verdadero, ya que JavaScript intenta convertir el string "1" en el número 1 antes de compararlos.
Otro ejemplo es el siguiente:
console.log(true == 1)
Aquí, el valor booleano true es convertido en el número 1 antes de compararlos, dando como resultado verdadero.
Es importante tener en cuenta estos comportamientos de JavaScript y asegurarse de que los valores estén en el tipo correcto antes de realizar comparaciones u operaciones. Esto puede ser logrado mediante funciones específicas de tipo o usando el operador estricto === en lugar del operador de igualdad ==.
Todo esto y más lo puedes aprender en el Curso Básico de JavaScript