Eu sou novo em Javascript. Estou aprendendo o conceito de içar em Javascript.
Com base nos tutoriais sobre Javacsript no site da Mozilla , me deparei com essa palavra hoisting
. De acordo com esses tutoriais, as variáveis em JavaScript são que você pode se referir a uma variável declarada posteriormente, sem obter uma exceção . Mas, minha pergunta é em que circunstâncias é adequado usar a elevação em um Javascript do lado do cliente ou por que devemos usar a elevação em Javascript. Quais são as suas vantagens?
javascript
Rudra
fonte
fonte
Respostas:
Eu nunca ouvi o termo "içar" usado. Se você está se referindo a esse uso de elevação por Ben Cherry: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html , pelo que posso entender, ele está simplesmente ecoando Douglas Crockford em Javascript: Boas peças e dizendo que você nunca deve usar o içamento . Sua afirmação no final é que todas as variáveis devem ser declaradas no topo de sua função (como sugerem Crockford e JSLint).
Ou, nas palavras de ChristopherBrown, não é um recurso a ser usado , por assim dizer, mas simplesmente uma peculiaridade relacionada à maneira como o navegador interpreta o Javascript.
Então, resumindo: nunca e em lugar nenhum .
fonte
A elevação descreve um recurso de como o Javascript é interpretado pelo navegador e não é um recurso a ser usado.
Ao interpretar o Javascript, os navegadores escolhem as variáveis no nível da função no início da função. Exemplo:
No código publicado, ambas as variáveis "dois" e "resultado" existem no início do escopo da função (obviamente, como são declaradas lá.) No entanto, como os navegadores estão "içando" as variáveis, o seguinte se torna código Javascript legal .
O efeito líquido aqui é que você tem variáveis em uso antes de declará-las e isso pode causar confusão, especialmente com variáveis de escopo global. Exemplo:
Para evitar confusão, declare suas variáveis na parte superior de uma função.
fonte
Por quê?
O JavaScript não possui escopo de bloco , o que deve explicar por que as coisas devem subir ao topo.
É útil?
Se você preferir:
Em vez disso:
Então é útil. Mesmo se você não perceber!
Clarificação
O primeiro exemplo será traduzido para algo assim:
fonte