Em JavaScript, pilha e heap são dois tipos de memória usados para gerenciar dados, cada um com uma finalidade distinta:
*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:
Exemplo de memória heap
Agora vamos verificar como os tipos de dados não primitivos (objetos) são gerenciados no Heap.
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:
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.
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