Saltar al contenido

¿Qué es exactamente el ‘Contexto de ejecución’ en JavaScript?

Estate atento porque en este enunciado vas a encontrar la solución que buscas.Esta división fue evaluado por nuestros especialistas para garantizar la calidad y exactitud de nuestro contenido.

Solución:

Estás preguntando sobre varios conceptos diferentes que no están muy relacionados. Trataré de abordar brevemente cada uno.


Contexto de ejecución es un concepto en la especificación del lenguaje que, en términos sencillos, equivale aproximadamente al “entorno” en el que se ejecuta una función; es decir, alcance variable (y el cadena de alcancevariables en cierres de ámbitos externos), argumentos de función y el valor de la this objeto.

los pila de llamadas es una colección de contextos de ejecución.

Ver también esta respuesta y este artículo.


Alcance es literalmente eso: el ámbito en el que se puede acceder a una variable. Simplista:

var x;

function a() 
    var y;

x se puede acceder desde cualquier lugar. Cuándo a es invocado, x estará en el ámbito exterior. (Almacenado en el cadena de alcance.)

A diferencia de, y sólo se puede acceder por código en a() porque se limita a ael alcance de Esto es lo que var La palabra clave does: restringe una variable al ámbito local. si omitimos var, y terminaría en el alcance globalgeneralmente considerado algo malo.


Pensar en elevación como más una cosa en tiempo de compilación. En JavaScript, función declaraciones son “elevados” a la parte superior de su alcance. En otras palabras, se analizan y evalúan antes de cualquier otro código. (Esto se opone a la función expresionesque se evalúan en línea). Considere lo siguiente:

a();
b();

function a()  
var b = function()  

la llamada a a() tendrá éxito porque su declaración fue izada a la cima; a se asignó a automáticamente antes de que comenzara la ejecución del programa. la llamada a b() fallará con un TypeError porque b no se definirá hasta la línea 4.

Ha preguntado tantos conceptos, pero escojamos uno por uno y entendámoslos.

El entorno en el que se ejecuta su código es Execution context.
Se crea cuando se ejecuta su código.

Execution Context (Global)creado por JS Engine contiene 3 cosas importantes para ti:

  1. Objeto global – window
  2. Objeto especial this
  3. Referencia al entorno exterior

Veamos un ejemplo sencillo para entender Global Execution Context:

var a = "Hello World";

function b()


Cuando JS Engine ejecuta este código anterior, crea el siguiente contexto de ejecución (que se muestra en la imagen): Contexto de ejecución global


Ahora veamos cómo JS Engine crea Execution Context (entonces vamos a desenterrar y entender el levantamiento): considere este escenario:

b();
console.log(a);

var a = "Hello World!";
function b()
    console.log("Called b!");

Puedo llamar a la función b() aunque se declare más tarde. Esto significa que JS Engine está haciendo algo antes de que se ejecute mi código, veamos qué:

JS Engine realiza los siguientes dos pasos al ejecutar cualquier código:

FASE DE CREACIÓN :

  • JS Engine analiza: ejecute su código y identifies variables & functions creado por código (que se utilizará en la fase de ejecución)
  • Configuración del espacio de memoria para variables y funciones – “Izar”
  • Izar – antes de que se ejecute su código, el motor JS reserva espacio de memoria para Var & Func utilizado dentro del código. Estas variables y funciones comprenden el contexto de ejecución de cualquier función que se ejecute. Todas las variables en JS están configuradas inicialmente como indefinidas.

FASE de ejecución: bastante simple de entender,

  • Cuando el código se ejecuta línea por línea (por el intérprete de JS), puede acceder a las variables definidas dentro del contexto de ejecución.
  • la asignación de variables se realiza en esta fase

Se crea un nuevo contexto de ejecución cada vez que se invoca una función.

Pila de contexto de ejecución:
Qué sucede cuando invocas una función:

function b()



function a()
    b();


a();
  • Ahora en primer lugar Global Execution Context se va a crear (como se explicó anteriormente)

  • luego comienza la ejecución y los encuentros del intérprete call to function
    a()
    y here a new execution context is created pushed on top EC
    Stack

    por lo tanto, cada vez que invoca una función, se crea un nuevo EC y se coloca encima de EC Stack.

  • y ahora EC for a() es CREATED intérprete ejecutará el código dentro a() linea por linea

  • entonces los encuentros del intérprete call to function b()esto crea otro EC que se empuja hacia arriba o EC apilar

  • Cuándo b() termina, se sacará de la pila y luego a() terminará y todo el camino hasta Global EC

ver Pila de ejecución para el fragmento de código anterior

me he dirigido solamente los temas que están más estrechamente relacionados.

El contexto de ejecución es el envoltura alrededor de su código existente; que contiene código que no has escrito; pero es generado por el Motor JS.

Se compone de lo siguiente:

  1. Objeto global
  2. ‘esta’
  3. Ambiente exterior
  4. Tu código

Se crea un contexto de ejecución cada vez que ejecuta su archivo/aplicación .js. El primer paso en esta fase de creación es Izar. El motor JS reservas de espacio o configura la memoria para todas las variables y funciones definidas en tu código. Luego se accede a estos cuando su código se ejecuta línea por línea.

Por ejemplo:

b();
console.log(a);
var a = "hi!";
function b() 
    console.log("calling function");

Aquí el función b() y una variable Sin embargo, se accede a ambos antes de que se definan debido a elevación la consola no arrojará ningún error.

La salida se verá como – (pruébalo)

calling function
undefined

Observe cómo la función se ejecutó por completo, pero tenemos indefinido para la variable. Esto es porque Izar se realiza de manera diferente para funciones vs variables. La función como un todo se recoge en la memoria, pero para las variables, el espacio se reserva como un marcador de posición con el valor de indefinido. El valor real luego se reemplaza cuando el motor se ejecuta tu código línea por línea.

Espero que esto te aclare el concepto.

Sección de Reseñas y Valoraciones

Te invitamos a corroborar nuestra investigación mostrando un comentario y dejando una puntuación te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *