DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #63: Explica este c贸digo JavaScript

Explica este c贸digo JavaScript

let name = 'Lydia'

function getName() {
  console.log(name)
  let name = 'Sarah'
}

getName()
Enter fullscreen mode Exit fullscreen mode
  • A: Lydia
  • B: Sarah
  • C: undefined
  • D: ReferenceError

Respuesta en el primer comentario.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author • Edited on

Respuesta:
D: ReferenceError

Las variables declaradas con let y const tienen scope de bloque es por este motivo que si bien tenemos 2 variables con el nombre name, ambas son diferentes e independientes en sus respectivos scopes.

La funci贸n getName intenta imprimir por consola name antes de ser declarada, por hoisting el interprete de javascript har谩 que name entre 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 getName la variable name estuviera declara con var:

function getName() {
  console.log(name)
  var name = 'Sarah'
}
Enter fullscreen mode Exit fullscreen mode

Por hoisting el resultado seria undefined puesto que la Temporal Dead Zone solo existe con variables declaradas con let y const.