Explica este código JavaScript
let name = 'Lydia'
function getName() {
console.log(name)
let name = 'Sarah'
}
getName()
- A:
Lydia - B:
Sarah - C:
undefined - D:
ReferenceError
Respuesta en el primer comentario.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (1)
Respuesta:
D:
ReferenceErrorLas variables declaradas con
letyconsttienen scope de bloque es por este motivo que si bien tenemos 2 variables con el nombrename, ambas son diferentes e independientes en sus respectivos scopes.La función
getNameintenta imprimir por consolanameantes de ser declarada, por hoisting el interprete de javascript hará quenameentre en lo que se denomina Temporal Dead Zone, una región del código donde la variable esta declarada pero no es posible acceder a ella.Todo esto producirá un
ReferenceError.Si dentro de la función
getNamela variablenameestuviera declara convar:Por hoisting el resultado seria
undefinedpuesto que la Temporal Dead Zone solo existe con variables declaradas conletyconst.