Alvaro Eduardo Garzón Pira
¡Hola tú!
Quizás el Hoisting pueda sonar algo raro al principio, pero te dejo un vídeo que me ayudó por completo con bonitas animaciones :3 para aprender el concepto de hoisting en caso que hayas finalizado con dudas.
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
Aquí tienes algunos datos curiosos sobre hoisting y coerción en JavaScript:
.
string y un number en JavaScript, el number se convierte automáticamente en string. Esto se conoce como coerción implícita.
.parseInt() o toString().
.== en lugar del operador de igualdad estricta ===, JavaScript puede realizar una coerción implícita de los valores antes de compararlos, lo que puede dar lugar a resultados inesperados.
.string y un number en JavaScript, el number se convierte en string y la operación se convierte en una concatenación de cadenas.JavaScript lo hace sobre todo cuando se opera un tipo de dato number y boolean con un string, ya que hace algunas interpretaciones o suposiciones acerca de ese dato, convirtiendo la operación en una concatenación o una operación matemática. Por eso se señala que JavaScript es un lenguaje débilmente tipado y dinámico
Alvaro Eduardo Garzón Pira
¡Hola tú!
Quizás el Hoisting pueda sonar algo raro al principio, pero te dejo un vídeo que me ayudó por completo con bonitas animaciones :3 para aprender el concepto de hoisting en caso que hayas finalizado con dudas.
Diego Toro Cárdenas
= // asigna == // compara === // equivale
Fernando Gill
Buen aporte!
Diego Toro Cárdenas
Mejor así:
= // asigna valores; == // compara valores por su tipo de datos; === // equivale valores porque le es irrelevante el tipo de datos;
Brandoly Jack
lo que pasa es lo siguiente
console.log(miNombre); let miNombre = "jose"
cuando se empieza a leer el código encuentra una variable que es miNombre que esta dentro del console.log lo que hace es declárala al principio antes del console.log y como no esta inicializada es decir no tiene valor se pone como undefined después encuentra el console.log esto hace que se muestre el valor de la variable y como no estaba inicializada hasta ese momento el valor es undefined pero diferente seria si console.log estuviera después de ser inicializada la variable es decir de tener el valor "jose"
Federico Guillermo Moreira Tejera
Excelente clase. Muy claro como se explico hoisting para una variable.
Luis Enrique Andrino Duque
Esto lo vi en el curso básico de JavaScript de Diego, pero nunca está de más repasar los conceptos otra vez. 💚
Carlos Andrade
7/80 Hoisting y coerción El hoisting es un comportamiento de JavaScript que mueve las declaraciones de variables y funciones al comienzo del ámbito antes de que cualquier otro código sea ejecutado. Esto significa que las variables y funciones pueden ser utilizadas antes de su declaración en el código.
console.log(x); var x = 5; //JavaScript interpreta este código como: var x; console.log(x); x = 5;
Coerción es el proceso en el que 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.
console.log(1 == "1"); // true console.log(true == 1); // true
Ricardo Alfonso Chavez Vilcapoma
Existen dos tipos de coerción:
El lenguaje JS lo hace:
console.log(4 + "7"); //47 //JavaScript interpreta a 7 como un string y lo que hace es concatenar el 4 al inicio.
El desarrollador lo hace
let a = 4; let c = String(a); console.log(typeof c); //"string"
Ricardo Samael Guzman Alejandro
andaba re perdido con esto JAJAJAJ gracias!!!!, un compañero compartio un link de un video de yt acerca de que es el Hoisting y me quedo mas claro