아니면 "게양"?
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.
Reference
이 문제에 관하여(아니면 "게양"?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pliniohr/o-que-e-o-hoisting-1ojm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)