Um resumo super rápido: Scope Chain, Hoisting e TDZ em JavaScript.

Jan 12 2023
Como o título diz, vou encurtar a história o máximo possível e entrar no assunto diretamente! O que é Cadeia de Escopo? A cadeia de escopo é uma forma de alinhar… Não. Aqui está um exemplo bruto em JavaScript: O que é Hoisting? Diretamente no ponto: a razão pela qual você pode chamar uma função (declaração) antes de ser declarada no código é porque ela é elevada com o valor real da função.

Como o título diz, vou encurtar a história o máximo possível e entrar no assunto diretamente!

O que é Cadeia de Escopo?

A cadeia de escopo é uma maneira de alinhar… Não. Aqui está um exemplo bruto em JavaScript:

const myVariable1 = "JavaScript";

function test1(){
  const functionVariable1=1;

  function test2(){
    const functionVariable2=2;
    
    console.log(`${myVariable1} , ${functionVariable1} , ${functionVariable2}`);
  }
  
  test2();
}

test1();

O que é Hoisting?

Diretamente no ponto: a razão pela qual você pode chamar uma função (declaração) antes de ser declarada no código é porque ela é elevada com o valor real da função. A elevação ocorre na fase de varredura imediatamente antes da execução do código. Você pode pesquisar mais sobre o levantamento de variáveis ​​e informações de valor inicial. Lembre-se, esta é uma visão geral rápida.

O que é TDZ?

TDZ é uma abreviação de Temporal Dead Zone, que basicamente representa a parte do código em que as variáveis ​​const,let não podem ser alcançadas. Intuitivamente, começa na primeira linha do código e ocorre até que você declare uma variável let ou const .

Referências:

https://udn.realityripple.com/docs/Glossary/Hoisting