¿Qué es la elevación en JavaScript?

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”.

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:

  1. Definir: función global
  2. global = verdadero
  3. falso retorno
  4. 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.

JavaScript es único en el sentido de que no necesita compilación antes de ser distribuido. Un navegador compilará los scripts a medida que los encuentre y tomará nota de las funciones y variables que se declaren dentro.

El navegador realiza una segunda pasada para ejecutar el código, sabiendo dónde se aplican estas funciones y variables. A medida que se ejecuta un bloque, sus declaraciones de función y variables se ‘izan’ a la parte superior del bloque.

bienvenido (“Matt”); // “Bienvenido, Matt”.
función de bienvenida (nombre) {
devuelve `Bienvenido, $ {nombre} .`;
}

En este ejemplo, podemos usar la función ‘bienvenido’ ya que se eleva hasta la parte superior del script.

Para más publicaciones, consulte el blog de la compañía Solar Digital.

Si te gusta el comentario, ¡vota!

La elevación es la acción del intérprete de JavaScript de mover todas las declaraciones de variables y funciones a la parte superior del alcance actual. Sin embargo, solo se levantan las declaraciones reales. Cualquier tarea se deja donde está.

Hola,

Primero quería aclararte que no es hosting, es elevación, por lo que el concepto detrás de la elevación es muy fácil y claro.

por lo tanto, es un concepto JS donde las declaraciones de variables y funciones se mueven a la parte superior de su alcance, por ejemplo,

función demo () {

a = 10;

var b = 20

}

manifestación();

console.log (b, a);

entonces el resultado del programa es indefinido y 10, porque sin la declaración de var, va al principio del alcance y declarar con var todavía está en el alcance local.

Veamos otro ejemplo.

nombre var = ‘khan’;

var apellido = ‘sultán’

(función(){

nombre var = ‘sultán’

apellido = ‘khan’

}) ();

console.log (nombre, apellido);

La salida del programa es khan khan.

Espero que tenga claro el concepto de elevación.

Gracias por leer 🙂

El izado es un concepto en el que sus declaraciones y funciones de variables se izan en la parte superior del alcance de referencia actual. Es solo la parte de declaración que se iza y no la parte de asignación de variable o función

p.ej. (función () {

izado ();

regreso;

function hoisted () {console.log (“Estoy alzado arriba”);

}}) ();

En el ejemplo anterior, la función izada se moverá a la parte superior del alcance de la función y, por lo tanto, verá la salida de console.log ().

p.ej.

(función () {

console.log (temp); // resulta en indefinido

var temp = ‘elevación’; // esta tarea no será izada

izado (); // arroja un error

var izado = función () {console.log (“izado”);

}}) ();

La elevación en JavaScript significa que todas las declaraciones de variables se mueven implícitamente a la parte superior del ámbito en el que se declaran. Un ejemplo:

a = 10;
console.log (‘El valor de la variable a es:’ + a);
var a = 15;

Esto evalúa a:

var a;
a = 10;
console.log (‘El valor de la variable a es:’ + a);
a = 15;

¿Dónde es útil?

En casos como estos:

f1 ();
var f1 = función () {
console.log (‘Se ha realizado una llamada de función válida’);
};

En este código, la función f1 se ha llamado en la línea 1, donde aún no se ha declarado y el intérprete JS conoce la función f1 en este punto, solo debido a la elevación en JS, que resultó en el siguiente código:

var f1;
f1 ();
f1 = función () {
console.log (‘Se ha realizado una llamada de función válida’);
};

Por lo tanto, la elevación JS es útil en dichos lugares.

Es tarea del intérprete, como todas las variables se procesarán primero.

Var a = 5;

función double () {

Console.log (“doble es ” + (a * 2));

}

doble();

a = 10;

Salida esperada: el doble es 10;

Sorprendentemente salida real: el doble es 20;

Código después de izar:

Var a = 5;

a = 10; // izado hasta arriba

función double () {

console.log (“double es” + (a * 2));

}

Así que encima del código illustartes que izar. Organizará todas las variables por encima del alcance actual.

Debido al alcance funcional de la palabra clave `var`, cada variable que defina llega a la parte superior de la función:

Ex:

si usted dice,

función de elevación () {
nombre var = ‘Saurabh’
console.log (nombre, color)
// … un poco más de código
var color = ‘azul’
}

cambiará a,

función de elevación () {
nombre var, color
nombre = ‘Saurabh’
console.log (nombre, color)
// … un poco más de código
color = ‘azul’
}

por eso dará salida: Saurabh indefinido

porque el nombre tiene un valor en la línea 4 pero el color no tiene ningún valor.

Eso es izar.

* no te preocupes por los punto y coma, funcionará igual incluso sin él.

Hay dos fases de ejecución en el motor de JavaScript cuando se crea un contexto de ejecución

1) Declaración

2) ejecución

En la primera fase de ejecución, todas las variables y funciones declaradas se almacenan en la memoria y, al momento de almacenarlas en la memoria, las variables se asignan a indefinidas.

Y en la segunda fase, es decir, la fase de ejecución, los valores reales se asignan a esas ubicaciones de memoria

Y en palabras simples, la fase de declaración de ese contexto de ejecución se llama elevación.

A diferencia de Java; en Javascript no hay ámbito de nivel de bloque. Solo alcance de nivel de función. Por lo tanto, las variables y funciones serán “elevadas” (movidas) a la parte superior de la función o al contexto global.

Creo que esto puede darte una explicación.
Levantamiento en javascript

puede comenzar desde aquí, por favor este enlace: Levantamiento de JavaScript

Este es un tema muy interesante.

Una vez escribí Comprensión de elevación en JavaScript Espero que les sea útil

La elevación es la acción del intérprete de JavaScript de mover todas las declaraciones de variables y funciones a la parte superior del alcance actual. Sin embargo, solo se levantan las declaraciones reales.

Javascript admite el alcance de las funciones, las variables son visibles en las funciones que están definidas y cualquier función anidada en ellas.