Contexto de execução em JavaScript
Vamos começar com um exemplo e, em seguida, detalhar como esse código está funcionando nos bastidores.
var x = 10;
var y = 20;
function add(a,b){
return a+b;
}
var result = add(x,y);
console.log(result) //30
Primeiro, declare as variáveis x e y e inicialize com seus respectivos valores 10 e 20.
Em segundo lugar, declare a função add que aceita o argumento e retorne a soma dos argumentos, ou seja, 10 + 20 = 30.
Em terceiro lugar, chame a função add com os argumentos como os valores da variável x & y e armazene o resultado na variável result.
Por fim, a saída da variável result com console.
Ao executar o código acima, o JavaScript faz muitas coisas.
Quando o mecanismo JavaScript executa o código JavaScript naquele momento, ele cria contextos de execução.
Cada contexto de execução tem duas fases
- A fase de criação.
- A fase de execução.
Quando o mecanismo JavaScript executa o código pela primeira vez, ele cria o contexto de execução global. Durante esta fase, o JavaScript executa algumas tarefas.
- Crie o objeto global, ou seja, janela no navegador da Web ou global no Node.js.
- Crie este objeto (esta palavra-chave) e vincule-o ao objeto global. No caso do navegador da Web, esta palavra-chave é anexada ao objeto janela e no Node js esta palavra-chave é anexada ao objeto global.
- Configure um heap de memória para armazenar referências de variáveis e funções.
- Armazene as declarações de função no heap de memória e as variáveis dentro do contexto de execução global com os valores iniciais como indefinidos.
- Armazene a variável x, y & result e a declaração de função add() no contexto de execução global.
- Inicialize as variáveis com valor indefinido, ou seja, x = indefinido, y = indefinido e resultado = indefinido.
Fase de execução
Durante a fase de execução, o mecanismo JavaScript executa o código linha por linha, atribui os valores à variável e executa as chamadas de função.
Para cada chamada de função, o mecanismo JavaScript cria uma nova chamada de execução funcional.
O contexto de execução da função é semelhante ao contexto de execução global. Mas, em vez de criar o objeto global, o mecanismo JavaScript cria o objeto de argumentos que é uma referência a todos os parâmetros da função.
Em nosso exemplo, o mecanismo JavaScript cria um objeto de argumentos que faz referência a todos os parâmetros passados para a função e define esse valor como o objeto global no caso do navegador da Web, esse valor é anexado ao objeto janela e no Node js esse valor é anexado ao global objeto e também inicializa um parâmetro & b com valor indefinido.
Durante a fase de execução do contexto de execução da função, o mecanismo JavaScript atribui os valores 10 e 20 ao parâmetro a & b e retorna o resultado (30) ao contexto de execução global.
Para acompanhar todos os contextos de execução, incluindo o contexto de execução global e os contextos de execução de funções, o mecanismo JavaScript usa a pilha de chamadas.
Vamos ficar em contato
Espero que este artigo seja valioso para você, até a próxima!





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)