아니면 "게양"?

3335 단어
os escritos pontuais da linguagem JavaScript, hoje vou escrever sobre 또는 "Hoisting".

Antes de continuar é Importante avisar da necessidade de conhecer o conceito de escopos global e local.

Na literatura é comum dizer que o Hositing é um processo no qual as declarações das variáveis ​​e das funções são movidas para o topo do código durante o processo de compilação/interpretação. A imagem a seguir tentar mostrar como seria sob essa visão:



Na verdade, não é bem assim que ocorre, trata-se apenas de uma maneira didática de compreender o processo.

De acordo com o MDN, "as declarações de variável e função são colocadas na memória durante a fase de compilação, mas permanecem exatamente onde você as digitou no seu código.".

Ou seja, todas as variáveis ​​e funções com escopo global são alocadas na memória, sem que sejam retiradas das suas posições no código.

É como se o compilador/interpretador mapeasse todas as declarações das funções e variáveis.

O levantamento como dizemos acima não ocorre, como disse, é uma maneira didática de compreender o processo.

Impera salientar que ocorre apenas com as funções e variáveis ​​com escopo global. Declarações com escopo local não sofrem 또는 "Hoisting".

Vamos para um exemplo de código para ver suas implicações práticas:

console.log(a) // undefined

var a = 1;

console.log(a) // 1


예를 들어 'console.log()'가 'console.log()'에 대한 변수 'a'를 선언할 때마다 '정의되지 않은' 결과가 나올 수 있습니다.

아웃트로 예시 com 'let':

console.log(a) // ReferenceError: a is not defined

let a = 1;

console.log(a)


Agora quando declaramos a variável por meio do 'let' é retornado um erro de referencencia. É acusado que a variável não foi definida.

Isso acontece em razão do escopo local de 'let', assim, não sofre 또는 Hoisting.

Essa é a diferença, por meio do processo de Hoisting, mesmo que a declaração seja posterior, o compilador/interpretador já a conhece, e apenas devolve que não foi inicializado nenhum valor para ela.

결국, 자연을 지역 사회로 선언한 것입니다. A sua chamada antes da declaração devolve um erro de reference: acusa-se que a variável ou função não foi declarada.

좋은 웹페이지 즐겨찾기