El levantamiento describe una característica de cómo el navegador interpreta Javascript, y no es tanto una característica para ser utilizada.
Al interpretar Javascript, los navegadores abarcan variables de nivel de función al comienzo de la función. Ejemplo:
function AddTwoAndTwo() {
var two = 2;
var result = two + two;
return result;
}
En el código publicado, ambas variables "dos" y "resultado" existen al comienzo del alcance de la función (obviamente, como se declaran allí). Sin embargo, debido a que los navegadores están "alzando" las variables, lo siguiente se convierte en código JavaScript legal .
function AddTwoAndTwo() {
result = 5;
alert(result);
var two = 2;
var result = two + two;
return result;
}
El efecto neto aquí es que tiene variables en uso antes de declararlas, y eso puede causar confusión, especialmente con las variables de alcance global. Ejemplo:
var result = 6;
function AddTwoAndTwo() {
alert(result); // should this be 6 or undefined?
var two = 2;
var result = two + two;
return result;
}
Para evitar confusiones, declare sus variables en la parte superior de una función.