La elevación es un concepto muy complicado e importante en el mundo de JavaScript. Antes de explicar la elevación, me gustaría preguntar:
¿Alguna vez ha visto alguna guía de estilo de JS que le pida que defina todas sus variables en la parte superior?
Estoy seguro de que diría que sí, pero probablemente no había pensado demasiado en por qué lo dicen. La respuesta a este “por qué” es “Izar”.
- Cómo agregar un ícono con contenido en WordPress
- ¿Cuál es su elección de stack tecnológico para el desarrollo web full stack en 2017?
- ¿Es posible mostrar una página con marco I desde un sitio HTTP en un blog que es HTTPS?
- ¿En qué idiomas está construido este sitio web y cuánto tiempo me tomará (a un novato) y a un diseñador construir una réplica?
- ¿Qué herramientas de desarrollo web utilizan las personas para no escribir HTML desde cero?
La palabra “izar” significa “elevar”. Por lo tanto, la elevación se define como la definición implícita de todas las variables (y otras funciones similares) en la parte superior del alcance actual. Tenga en cuenta que “en el alcance actual” es muy importante aquí.
Vamos a entenderlo con la ayuda del ejemplo:
var global = falso;
prueba de funcionamiento() {
global = verdadero;
falso retorno;
función global () {}
}
console.log (global); // dice falso (como se esperaba)
prueba();
console.log (global); // dice falso (Inesperado: debe ser verdadero)
En este caso, cuando se llama a la prueba, el intérprete realiza esta secuencia:
- Definir: función global
- global = verdadero
- falso retorno
- global = {}
Entonces, dentro de la función de prueba, cuando se modifica global, se modifica el alcance interno global de la función de prueba y el alcance externo global no se ve afectado. Por lo tanto, obtenemos `falso` como resultado en la segunda declaración de la consola también.
Ahora, esta es una pregunta para ti:
var foo = 1;
barra de funciones () {
volver foo;
foo = 10;
función foo () {}
var foo = 11;
}
bar();
console.log (foo);
Una vez que resuelva esto, consulte Alcance de variables (elevación) en Javascript de donde obtuve estas 2 preguntas.