"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Noções básicas sobre pilha e heap em JavaScript.

Noções básicas sobre pilha e heap em JavaScript.

Publicado em 2024-11-03
Navegar:777

Understanding Stack and Heap in JavaScript .

Em JavaScript, pilha e heap são dois tipos de memória usados ​​para gerenciar dados, cada um com uma finalidade distinta:

  1. Pilha
  2. Pilha

*O que são pilha e heap *
Stack: O Stack é usado para alocação de memória estática, principalmente para armazenar tipos primitivos e chamadas de função. É uma estrutura simples, último a entrar, primeiro a sair (LIFO), tornando seu acesso muito rápido.

Heap: O Heap é usado para alocação dinâmica de memória, onde objetos e arrays (tipos não primitivos) são armazenados. Ao contrário do Stack, o Heap é mais complexo e de acesso mais lento, pois permite alocação flexível de memória.

Exemplo de memória de pilha:

let myName = "Amardeep"; //primitive type stored in stack 
let nickname = myName; // A copy of the value is created in the Stack 
nickname = "Rishu"; // Now changing the copy does not affect the original value .
console.log(myName); // output => Amardeep (Original values remains unchanged since we are using stack)
console.log(nickname); // output => rishu (only the copied value will changed)

Neste exemplo:

  • myName é armazenado na pilha como um tipo primitivo.
  • Quando o apelido recebe o valor myName , uma cópia desse valor é criada na pilha .
  • A alteração do apelido não afeta myName , pois são cópias independentes na memória.

Exemplo de memória heap
Agora vamos verificar como os tipos de dados não primitivos (objetos) são gerenciados no Heap.

let userOne = { // A referência a este objeto é armazenada na pilha. e-mail: "usuá[email protected]", upi: "usuário@ybl" }; // Os dados reais do objeto são armazenados no Heap. deixe userTwo = userOne; // userTwo faz referência ao mesmo objeto no Heap. userTwo.email = "[email protected]"; // Modificar userTwo também afeta userOne. console.log(userOne.email); // Saída: [email protected] console.log(userTwo.email); // Saída: [email protected]
let userOne = {         // The reference to this object is stored in the Stack.
    email: "[email protected]",
    upi: "user@ybl"
};                      // The actual object data is stored in the Heap.

let userTwo = userOne;  // userTwo references the same object in the Heap.

userTwo.email = "[email protected]"; // Modifying userTwo also affects userOne.

console.log(userOne.email); // Output: [email protected]
console.log(userTwo.email); // Output: [email protected]
Neste exemplo:

    userOne contém uma referência a um objeto armazenado no Heap. -userTwo recebe a mesma referência, o que significa que userOne e userTwo apontam para o mesmo objeto no Heap. -A alteração de userTwo.email afeta diretamente userOne.email, porque ambas as referências apontam para o mesmo local na memória.

Principais conclusões *
Stack Memory * é usado para armazenar tipos primitivos e chamadas de função. Cada vez que você atribui um valor, uma nova cópia é criada na pilha. *
Heap Memory * é usado para armazenar objetos e arrays. Variáveis ​​que fazem referência ao mesmo objeto compartilham o mesmo local de memória na memória, portanto, alterar uma variável afeta as outras.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/amar_x_vr/understanding-stack-and-heap-in-javascript--11ho?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3