A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Ejemplo de Objeto global y hoisting

6/13
Recursos

Aportes 126

Preguntas 15

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Una preguntica de examen
Una estricta definici贸n de hoisting sugiere que las declaraciones de variables y funciones son f铆sicamente movidas al comienzo del c贸digo,asignandolas en memoria dentro de un contexto de ejecucion.

Lo que escribes:

console.log(nombre);
apellido();

var nombre = "Diego";

function apellido(){
	console.log("De Grada");
}

Como el motor de JavaScript lo interpreta:

var nombre = undefined;
function apellido(){
	console.log("De Grada");
}

console.log(nombre);
apellido();
nombre = "Diego";

Si te preguntas cu谩l pone m谩s arriba, 驴Las variables o las funciones?
La respuesta es las variables. Probemos esto:

var nombre;
function nombre(){}

typeof nombre; // Output: "function"

驴Y si ponemos primero la funci贸n y luego la variable?

function nombre(){}
var nombre;

typeof nombre; // Output: "function"

Pero, si declaras una variable y le asignas un valor en la misma linea el resultado es diferente:

var nombre = "Platzi";
function nombre(){}

typeof nombre; // Output: "string"

Esto es porque JavaScript hace hoisting solo de la declaraci贸n de la variable. JavaScript trata la declaraci贸n y asignaci贸n en una sola linea como dos pasos, por lo que si escribimos:

var nombre = "Platzi";

El motor lo interpreta as铆:

var nombre = undefined;
nombre = "Plazi";

As铆 que cuando escribimos:

var nombre = "Platzi";
function nombre(){}

typeof nombre; // Output: "string"

Como lo interpreta el motor de JavaScript es as铆:

var nombre = undefined;
function nombre(){}

nombre = "Platzi";

typeof nombre; // Output: "string"

Es decir que 鈥渟e deja atr谩s鈥 la asignaci贸n.
Obviamente ning煤n desarrollador deber铆a de escribir c贸digo as铆 de confuso, esto es solo para saber como funciona JavaScript y su engine, ese conocimiento te hace un mejor desarrollador y te destaca de entre otros.

Hoisting

  • Si llamamos una variable antes de ser declarada, el compiler crea la variable en la memory heap y la inicializa como undefined
  • En el caso de las funciones es distinto, primero mandamos a llamar a las funciones antes de ejecutarlas.
  • El hoisting a veces funciona pero no tenemos control de las variables que se van a cambiar
  • Si llamamos a una constante (const) antes de inicializar retorna un error de tipo: Uncaught ReferenceError, que corresponde a variables que son referenciadas pero no pudieron ser capturadas

Cuando el motor JS obtiene nuestro script, lo primero que hace es configurar la memoria para los datos de nuestro c贸digo. No se ejecuta ning煤n c贸digo en este punto, simplemente est谩 preparando todo para su ejecuci贸n. La forma en que se almacenan las declaraciones de funci贸n y las variables es diferente.
.
Las funciones se almacenan con una referencia a la funci贸n completa:

.
Con las variables es un poco diferente. ES6 introdujo dos nuevas palabras clave para declarar variables: let y const. Las variables declaradas con la palabra clave let o const se almacenan sin inicializar:

.
Las variables declaradas con la palabra clave var se almacenan con el valor predeterminado de undefined:

.
Ahora que ha terminado la fase de creaci贸n, podemos ejecutar el c贸digo. Veamos qu茅 sucede si tuvi茅ramos 3 sentencias console.log encima del archivo, antes de declarar la funci贸n o cualquiera de las variables.

Dado que las funciones se almacenan con una referencia a todo el c贸digo de la funci贸n, podemos invocarlas incluso antes de la l铆nea en la que las creamos:

.
Cuando hacemos referencia a una variable declarada con la palabra clave var antes de su declaraci贸n, simplemente devolver谩 su valor predeterminado con el que se almacen贸 鈥渦ndefined鈥. Sin embargo, esto a veces puede provocar un comportamiento 鈥渋nesperado鈥. En la mayor铆a de los casos, esto significa que le est谩s haciendo referencia sin querer (probablemente no quieras que tenga el valor de undefined):

.
Para evitar poder hacer referencia accidentalmente a una variable undefined, como podr铆amos hacer con la palabra clave var, se lanzar谩 un ReferenceError cada vez que intentamos acceder a variables no inicializadas.
La 鈥渮ona鈥 antes de su declaraci贸n real se denomina 鈥渮ona muerta temporal鈥. No puede hacer referencia a las variables (隆esto tambi茅n incluye las clases ES6!) antes de su inicializaci贸n:

.
Cuando el motor pasa la l铆nea en la que realmente declaramos las variables, los valores en la memoria se sobrescriben con los valores con los que realmente los declaramos (hay un peque帽o error en la animaci贸n, debiera ser la n煤mero 7 y no la 6):

.
Resumen r谩pido:

鈥 Las funciones y variables se almacenan en la memoria para un contexto de ejecuci贸n antes de ejecutar nuestro c贸digo. A esto se le llama Hoisting .
鈥 Las funciones se almacenan con una referencia a la funci贸n completa, las variables con la palabra clave var con el valor de undefined y las variables con la palabra clave let y const se almacenan sin inicializar.

https://developer.mozilla.org/es/docs/Glossary/Hoisting
.
Hoisting es un t茅rmino que no encontrar谩 utilizado en ninguna especificaci贸n previa a ECMAScript庐 2015 Language Specification. El concepto de Hoisting fue pensado como una manera general de referirse a c贸mo funcionan los contextos de ejecuci贸n en JavaScript (espec铆ficamente las fases de creaci贸n y ejecuci贸n). Sin embargo, el concepto puede ser un poco confuso al principio.
.
Conceptualmente, por ejemplo, una estricta definici贸n de hoisting sugiere que las declaraciones de variables y funciones son f铆sicamente movidas al comienzo del c贸digo, pero esto no es lo que ocurre en realidad. Lo que sucede es que las declaraciones de variables y funciones son asignadas en memoria durante la fase de compilaci贸n, pero quedan exactamente en d贸nde las has escrito en el c贸digo.

Cuando comparamos window con this y da true, ese true NO lo da porque sean objetos iguales y tengan la informaci贸n, ese true lo da porque ambas variables son EL MISMO objeto, es decir, ambas variables tienen la misma referencia de memoria, ambas variables est谩n apuntando a la misma referencia en memoria de la computadora, por lo que, si cambias algo en una, tambi茅n se cambiar谩 en otra ^^

let y const importantes para evitar el hoisting !

Como buena pr谩ctica est谩 bien evitar el hoisting. Primero declarar las funciones y variables, antes de usarlas.

Les adjunto un video del gran Sacha (tambi茅n maestro de Platzi en cursos de JS) que explica de forma interactiva sobre que es el hoisting y su comportamiento.

驴QU脡 ES EL HOISTING en JAVASCRIPT? | JS en ESPA脩OL

This en diferentes situaciones y su comportamiento
.
https://filisantillan.com/this-en-diferentes-situaciones-y-su-comportamiento/

espero que le ayude esto

A manera de resumen para evitar el hoisting es necesario:

  1. Declarar variables y/o funciones
  2. Inicializar variables y/o funciones (en caso de ser arrow functions)
  3. Llamar o usar variables y/o funciones

Zona muerta temporal
Es el lugar donde se guardan las variables declaradas con let y const, cuya funci贸n es impedir el acceso a ellas antes de ser inicializadas. Por eso es mejor usar let y const por sobre var

Curso de ECMAscript 6+ donde se explica lo de var, let o const:
https://platzi.com/clases/ecmascript-6/

Adem谩s el curso de fundamentos de JavaScript que toca y aplica tambi茅n el tema en el modulo ** Complementos**

https://platzi.com/clases/fundamentos-javascript/

//FUNCION POR DECLARACION:
function name(){

}
//FUNCION POR EXPRESION:
const name = ()=>{
  
}

DIFERENCIAS ENTRE UNA FUNCI脫N POR EXPRESI脫N Y UNA FUNCI脫N POR DECLARACI脫N (PREGUNTA T脡CNICA): La diferencia es que en las funciones por expresi贸n no existe el HOISTING

undefined es una propiedad del objeto global, es decir, una variable de alcance global. El valor inicial de undefined es el valor primitivo undefined.
Una variable a la que no se le ha asignado valor, o no se ha declarado en absoluto (no se declara, no existe) son de tipo undefined.

El hoisting es un poseso de compilador de JS que consiste en que la declaraci贸n de las variables y las funciones son llevadas a l inicio del c贸digo sin importas sus propiedades, para su procesamiento sin embargo, la inicializaci贸n de las variables no es llevada al inicio del c贸digo para su compilaci贸n, si no solo su declaraci贸n, lo suele dar espacios a errores cuando se declara una variable sin inicializarla y se procesa en el c贸digo antes de haber llegado a sus inicializaci贸n lo cual nos suele dar una variable con calor undefined, ya que la variables si fue almacenada en la memoria, pero no se asigno un valor asta despu茅s de la ejecuci贸n ejemplo :

saludo()
function saludo() {
	console.log("Hola" + nombre)
}
var nombre = "Miguel"

El resultado sera

Holaundefined

En base a este ejemplo fue porque se cometi贸 el error de usar la variable antes de inicializar pues sin problema el compilador le asigna memoria pero no el valor asta despu茅s.
Le asigna memoria a la variable y le da valor de undefined a suceder la asignaci贸n de memoria.

var nombre = undefined;
function saludo(){
    console.log("Hola" + nombre);
}
saludo()

Aqui como hemos visto que la variable como undefined y posterior mente se utiliza al llegar a l alinea del saludo()
Pero si declaro si hago este siguiente codigo me va a regresar el nombre que le puse a la variable, le puse comillas para separar el hola y el nombre

var nombre = undefined;
function saludo(){
    console.log("Hola" + " " + nombre);
}
var nombre = "Miguel";
saludo()

el resultado seria Hola Miguel
La forma de hacer que corrercta de hacerlo es esta

var nombre = "Miguel";
function saludo (){
	console.log("Hola" + " " + nombre)
}
saludo()

Primero llamamos variables y funciones y luego las ejecutamos!

Parser => Significa analizar y convertir un programa a un formato interno que un entorno de ejecuci贸n pueda ejecutar, por ejemplo, el motor JavaScript dentro de los navegadores.

Parcero => Significa Amigo en Colombia.

El Hoisting no aplica a let y const.
Por eso es recomendado no usar var.

Tampoco a la funciones expresivas:
const myFunc = function() {}

Comparto los apuntes que he hecho, espero les sea de ayuda para entender estos temas.

el valor de this no es siempre windows todo depende del contexto

var o = {
f: function() {
return this == window
}
};

console.log(o.f()); // FALSE

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Operadores/this

Como tal, Javascript no eleva las declaraciones de function y de var, lo que hace es que en el momento de parsearlo, se buscan las palabras claves y se le asignan un valor, un estado inicial en los siguientes casos es:

  • var: le asigna undefined.
  • let y const: le coloc谩 No asignado.
  • para las function declaration si les asigna su contenido propio.

El hecho de 鈥渆levar鈥 es una forma de simplificar la explicaci贸n, pero es importante reconocer que es lo que sucede realmente para nuestra formaci贸n profesional

Pienso que un buen programador no debe dar chance al JS de hacer hoisting.

Hay que tener en cuenta que window === this es verdad porque ambos tienen el mismo espacio en memoria. En ocaciones en JS, nosotros podemos tener objetos, en donde el this ya no es window. As铆 que hay que tener eso en mente.

OBJETO GLOBAL WINDOW Y VARIABLE THIS

- WINDOW Ya trae funciones por defecto que se pueden utilizar sobre el codigo JS que uno genere
- THIS es una variable que hace referencia a window
- Puede mandarse llamar como window o como this

HOISTING

- Cuando empieza a correr el motor de javascript y encuentra lo que parecen ser variables no declaradas y/o inicializadas, 
  las declara e iguala a UNDEFINED para que reserve en memoria el espacio 
  (MEMORY HEAP - el proceso donde javascript guarda variables y funciones en memoria)
- En las funciones no hay problema, ya que primero las guarda en memoria y luego revisan de que tratan para mandarlas llamar.

- HOISTING SOLO OCURRE CON LAS VARIABLES Y FUNCIONES
- Cuando se trata de constantes manda error ya que dice que primero se debe inicializar para ser utilizada

Lo que el hoisting quiere decir es que todas las variables o funciones deben ser declaradas antes de que se manden llamar. En el caso de las funciones, JavaScript siempre las pone hasta arriba antes de que se ejecute el c贸digo, pero debemos ser muy cuidadosos con las variables.

El var sirve para inicializar una variable, esta puede ser usada en el entorno global.
.
El let solo va a poder ser usado en el bloque de c贸digo en el que se haya declarado.
.
El const tambi茅n se va a usar en el bloque en el que se haya declarado y este no se va a poder cambiar jam谩s, es una constante.

驴Y los links/Documentacion apa?

Este profesor explica genial!

Aqu铆 un excelente video para complementar los conceptos.
https://www.youtube.com/watch?v=uI6o97A4IrI

Es muy productivo el curso, pero todo esto se puede evitar si declaramos de ante mano, las variables y las funciones 馃槃

El undefined sale debido que la variable nombre no est谩 definido en ese orden de ejecuci贸n y el segundo te muestra el nombre porque llama una funci贸n

En lugar de generar un archivo html con js pueden abrir la consola (F12) en una pesta帽a about:blank

Recomendaci贸n: Guarden los links de toda la documentaci贸n/art铆culos/p谩ginas/otros que los profes compartan, eventualmente siempre volver谩n a ellos y es mejor tenerlos a la mano que perder algunos minutos buscando.

(Yo tengo todo en carpetas de marcadores)

Buena info, el hoisting solo aplica con el var y function

En el curso b谩sico de javascript miramos algo de hoisting, en el caso de la funci贸n, el navegador siempre lee todo el archivo y las funciones las sube en memoria, luego hay si ejecuta el resto del codigo, entonces con la funci贸n no abra problema si estamos llamando la funci贸n antes de declararla, pero por buenas pr谩cticas es mejor declararla e iniciarlizarla antes de llamarla, en el caso de una variable, saldr铆a indefinida. Luego reservar铆a el espacio en memoria y ya la podriamos llamar.

Esto del hoisting me record贸 la pregunta que siempre me hago, que siempre busco, que siempre resuelvo, pero que siempre me quedo con la duda.
Esta duda es conocida como:

'use strict'

Es hoisting es en realidad un feature super interesante, pero tienes que utilizarlo con cuidado si confias mucho que tu c贸digo correr谩 de forma 鈥減rocedural鈥 de arriba para abajo.

Importante usar let y const para evitar el hoisting y adem谩s darle m谩s significado a nuestro c贸digo.

Hosting solo pasa para variables y funciones

El objeto window representa la ventana que contiene un documento DOM; la propiedad document apunta al DOM document cargado en esa ventana.
Fuente: developer.mozilla.org

El objeto global es equivalente a Window el cual es igual a this y representan la ventana que contiene el DOM 鈥楧ocument Object Model鈥

quiero decir que se guarda en el memory heap, pero exactamente donde vive el memory heap? en la ram y esta comparte con el navegador?

Tambi茅n existen palabras reservadas que solo puede usar el lenguaje, por ejemplo undefined es una de ellas y no se puede usar para otra cosa

como se llama la extensi贸n de la consola que hace que se vea oscura y la hace parecer VSC?

El hoisting tambi茅n aplica para las arrow function que no son 鈥渇unciones鈥 en el sentido estricto de la palabra sino que JS las lee como variables. Corrijanme si me equivoco.

o.O entonces el hoisting se podria decir que se basa en la jerarquia. no puede tomar algo desde abajo, por que no lo ha leido. como lo lee de arriba hacia abajo... ohhhhh
console.log(nombre);
apellido();

var nombre = 'Fran';

function apellido() {
    console.log('Garcia');
}

//aparece 
//udefined
//Garcia

//Justamente esto es el hoisting. el motor intenta ayudar y algunas cosas las puede generar




console.log(nombre);
apellido();

const nombre = 'Fran';

function apellido() {
    console.log('Garcia');
}

//al declarar la variable con const
//Uncaught ReferenceError: Cannot access 'nombre' before initialization
//at <anonymous>:1:13
//genera un error, ya que al declarar la variable asi, ya no es un objeto global
//el hoisting no es buena practica por que por lo general no se tiene el control de las cosas


//asi se debe hacer por buena practica,
//primero declarar variables y funciones 
//y despues invocarlas
//asi como el uso de const y let, segun se requiera

console.log(nombre);
apellido();

const nombre = 'Fran';

function apellido() {
    console.log('Garcia');
}

En JavaScript, las declaraciones (por ejemplo, de variables o funciones) se mueven al principio de su scope o 谩mbito. Este comportamiento se conoce como hoisting. En el caso de las variables, es muy importante tener en cuenta que el hoisting solo se aplica a la declaraci贸n, y no a su asignaci贸n.

Va a salir:
undefined
De Granda

Por el Hoisting por qu茅 js va a declarar hasta arriba autom谩ticamente la variable nombre, pero sin inicializar la variable, por eso saldr铆a undefined. Y para las functions es lo mismo si la mandas a llamar antes o despu茅s.

En este video pueden ahondar en el tema de Hoisting,
Es muuuy bueno.

https://www.youtube.com/watch?v=uI6o97A4IrI

undefined es un dato primitivo que tiene JavaScript

Hoisting es conocido como el comportamiento predeterminado de JavaScript de mover las declaraciones a la parte superior.

Buena explicaci贸n!

Excelente, se entiende m谩s el motor y como funciona.

El hoisting solo se le aplica a las declaraciones (variables, funciones) y no a las asignaciones (todo lo que est茅 a la derecha del signo "="). Por eso es que despu茅s del hoisting la variable queda con el vamos de "undefined"

Si quieres saltear de l铆nea en la consola de Chrome
tienes que apretar: MAYUS + ENTER.

Al menos en Windows.

https://drive.google.com/drive/folders/1SWGMgTMPbwgasbzcivcpcnIudc2vk_v0?usp=sharing
Les comparto mi carpeta con la toma de notas de todos los curso que fui haciendo en JavaScript! Los invito a participar, mejorarla y utilizarla para aprender!
Suerte!

El hoisting pinta que puede ser un problema 鈥

El hoisting funciona para variables y funciones pero hay que aclarar que para ambas, solamente se almacena en memoria su forma declarativa. Las funciones de tipo expresivas no se pueden llamar antes de su declaraci贸n.

//--------------- SI TIENE HOISTING
sayHello('Isaac');

funcion sayHello(name){
	console.log('Hello, ' + name);
}

//--------------- NO TIENE HOISTING
sayHello('Isaac');

var sayHello = funcion (name){
console.log('Hello, ' + name);
}

Esta pag tiene un editor de texto en el navegador, es super util para hacer pruebas peque;as donde no amerita guardar el documento y soporta muchos lenguajes https://replit.com/~

baneado por boby

undefined y apellido, porque el hoisting solo crea el espacio para la variable y tambi茅n carga la estructura de la funci贸n.

Se deben siempre declarar las variables y funciones primero.

No usar VAR por favor!!!

Conclusi贸n: Declarar las variables y funciones al inicio del c贸digo.

Que buena explicaci贸n por parte del profesor!!

//Asi no tengamos codigo el navegador crea el objeto window junto con todas al Apis que maneja el navegador, este es el entorno global que se genera antes de la ejecucuion de mi codigo.

//this

//Es una variable que hace referencia a window

//Hoisting

//Ubica variables al inicio del codigo como si estuvieran todas en las primeras lineas de ejecucuion, esto lo hace de forma declarada lo que quiere decir que aun no estan inicializadas por lo que las ubica arriba sin valor o mas bien con el valor indefinido undefined y posteriormente si quedaria el resto de codigo que escribiste.

//En el caso de las funciones si ubica el bloque completo por lo que se podra acceder a todo el entorno dentro de la funcion.

//Con let y const cuando hay hoisting en la variable se genera un error que rompe el codigo

  • En JavaScript, las declaraciones (por ejemplo, de variables o funciones) se mueven al principio de su scope o 谩mbito. Este comportamiento se conoce como hoisting y es muy importante tenerlo en cuenta a la hora de programar para prevenir posibles errores. Hoisting es cuando las variables y las funciones se declaran antes de que se procese cualquier tipo de c贸digo.
    • Las funciones siempre se mueven arriba del scope. Por lo tanto, podemos elegir d贸nde declararlas y usarlas.
    • La declaraci贸n de las variables se mueven arriba del scope, pero no la asignaci贸n. Antes de usar una variable, habr谩 que crearla y asignarla.

Hoisting es el comportamiento por defecto de JavaScript en el que la declaraci贸n de variables y funciones se mueve autom谩ticamente al principio del scope (ya sea el principio del archivo, la funci贸n o el bloque). Mira este ejemplo:

greetMiguel()

function greetMiguel() {
  console.log("Hello Miguel")
}

A pesar de que estamos invocando la funci贸n **greetMiguel **antes de definirla, esto funciona; la declaraci贸n de la funci贸n se mueve al principio del archivo antes de ejecutarlo.
La declaraci贸n de las variables tambi茅n se mueve, pero no la inicializaci贸n. Mira este ejemplo:

console.log(name);
let name = 'Miguel Soler';

El resultado de este c贸digo es undefined porque, aunque la declaraci贸n de name se mueve al principio, la inicializaci贸n no. El anterior c贸digo es igual a:

let name;
console.log(name);
name = 'Miguel Soler';

Por esta raz贸n, si asignamos una funci贸n a una variable, la funci贸n no se mueve al principio y no la vamos a poder invocar antes:

greetMiguel(); // Error, greetMiguel is not a function

const greetMiguel = function() {
  console.log("Hello Miguel");
}

Lo mismo ocurrir铆a si cambiamos la funci贸n por una funci贸n flecha.
Recuerda y rep铆telo a diario: Lo que se mueve es la declaraci贸n de la variable, no la inicializaci贸n.

Dato curioso, si abren window en la consola de Chrome y ven todo el listado, pueden ver que all铆 est谩n alojadas las funciones como console.log(), Math.floor(), reject(), resolve(), etc.

Creo que le dar谩 mayor relevancia a la funci贸n y la enviara antes que el console.log

Si nosotros creamos un archivo HTML que tenga un archivo de JS vac铆o pero enlazado al HTML. El windows se crea autom谩ticamente, donde a pesar de que no tengamos ning煤n JavaScript, ya tenemos el objeto windows con todas las API para poder utilizar en el navegador.

This es una variable que es de referencia a windows, si los comparamos se nos devuelve un valor en TRUE, lo que nos demuestra que son iguales. Y esta windows es el objeto global antes mencionado.

El hoisting es cuando JavaScript declara autom谩ticamente las variables o funciones que llamamos y aun no tenemos declaradas. El problema con esto, es que JS no inicializa estas variables y se mantienen con 鈥渦ndefined鈥. Hay funciones que si podemos llamar antes de declararlas, pero hay que tener cuidado con las variables, ya que aqu铆 funciona el hoisting. Si esta variable es utilizada como constante, tendremos que inicializarla desde antes de llamarla o marcara error.

Una estricta definici贸n de hoisting sugiere que las declaraciones de variables y funciones son f铆sicamente movidas al comienzo del c贸digo ,asign谩ndolas en memoria dentro de un contexto de ejecuci贸n.

Entonces Se puede controlar el hoisting [Elevaci贸n de las variables] si usamos let y const

  1. var聽declara una variable de聽scope global o local para la funci贸n聽sin importar el 谩mbito de bloque. Permite聽hoisting.
  2. let聽declara una variable de聽scope global, local para la funci贸n o de bloque. Es聽reasignable聽y no permite hoisting.
  3. const聽declara una variable de scope global, local para la funci贸n o de bloque.聽No es reasignable, pero es mutable. No permite hoisting.

Diferencias clave entre var, let y const en JavaScript

El hoisting no funciona con las asignaciones

Es una buena practica declarar las funciones al inicio y luego utilizarlas.

Buenos conceptos!

Te comparto el curso de ECMASCRIPT 6 + aqui 鉂わ笍

Un peque帽o video del hosting que se explica claramente con ejemplos:

https://www.youtube.com/watch?v=uI6o97A4IrI&t=220s&ab_channel=LaCocinadelC贸digo

Tambi茅n utilizando let en la declaraci贸n, si mandamos a llamar una variable antes de declararla nos marcar error.

va a salir:

undefined
De Granda

Guardar en memoria ram?

y los links ?

La documentaci贸n oficial de MDN Web Docs:
https://developer.mozilla.org/en-US/docs/Glossary/Hoisting

Muy interesante. Sigamos.

Muy interesante

mmm va a salir ahora si:

Diego
De Granda

Algo que no me gusta del lenguaje verbal usado en desarrollo, es ese spanglish mal usado:

parseo
setear
debuggear

Y otros que se me escapan, que aunque el desarrollo tenga m谩s alcance en ingl茅s, para el espa帽ol deber铆a usarse su correcta traducci贸n.

Campa帽a 鈥楶or un lenguaje bien hablado y buenas pr谩cticas de expresi贸n鈥

馃槃

let y const alzan un error de que la variable no esta definida a diferencia de var. En el caso de las arrow functions, si la funci贸n es llamada antes de su declaraci贸n tambi茅n alzara un error.

Hosting, o elevaci贸n es el comportamiento por defecto de JavaScript de 鈥渕over declaraciones al principio鈥 del c贸digo.
importante saber que en este lenguaje, una variable puede ser declarada despu茅s de ser usada.

Hay alg煤n curso sobre APIs del navegador.?

El hoisting en JavaScript es un error que pasa ocasionalmente , debemos tratar de evitar este tipo de errores primero llamamos las variables y funciones luego las ejecutamos, es buena practica colocar las funciones y variables al principio y al final ejecutarlas.