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:
function AddTwoAndTwo() {
var two = 2;
var result = two + two;
return result;
}
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 .
function AddTwoAndTwo() {
result = 5;
alert(result);
var two = 2;
var result = two + two;
return result;
}
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:
var result = 6;
function AddTwoAndTwo() {
alert(result); // should this be 6 or undefined?
var two = 2;
var result = two + two;
return result;
}
Para evitar confusão, declare suas variáveis na parte superior de uma função.