"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Comprender la pila y el montón en JavaScript.

Comprender la pila y el montón en JavaScript.

Publicado el 2024-11-03
Navegar:550

Understanding Stack and Heap in JavaScript .

En JavaScript, la pila y el montón son dos tipos de memoria que se utilizan para administrar datos, cada uno con un propósito distinto:

  1. Pila
  2. Montón

*¿Qué son Stack y Heap? *
Pila: la pila se utiliza para la asignación de memoria estática, principalmente para almacenar tipos primitivos y llamadas a funciones. Es una estructura simple, último en entrar, primero en salir (LIFO), lo que hace que el acceso sea muy rápido.

Montón: el montón se utiliza para la asignación de memoria dinámica, donde se almacenan objetos y matrices (tipos no primitivos). A diferencia de Stack, Heap es más complejo y de acceso más lento, ya que permite una asignación de memoria flexible.

Ejemplo de memoria de pila:

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)

En este ejemplo:

  • myName se almacena en la pila como un tipo primitivo.
  • Cuando a apodo se le asigna el valor de myName, se crea una copia de ese valor en la pila.
  • Cambiar apodo no afecta a myName, ya que son copias independientes en la memoria.

Ejemplo de memoria dinámica
Ahora veamos cómo se administran los tipos de datos (objetos) no primitivos en el montón.

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]

En este ejemplo:

  • userOne contiene una referencia a un objeto almacenado en el montón. -A usuarioDos se le asigna la misma referencia, lo que significa que tanto usuarioUno como usuarioDos apuntan al mismo objeto en el montón. -Cambiar userTwo.email afecta directamente a userOne.email, porque ambas referencias apuntan a la misma ubicación en la memoria.

Conclusiones clave
*Memoria de pila * se utiliza para almacenar tipos primitivos y llamadas a funciones. Cada vez que asignas un valor, se crea una nueva copia en la pila.
*Memoria de montón * se utiliza para almacenar objetos y matrices. Las variables que hacen referencia al mismo objeto comparten la misma ubicación de memoria en la memoria, por lo que cambiar una variable afecta a las demás.

Declaración de liberación Este artículo se reproduce en: https://dev.to/amar_x_vr/understanding-stack-and-heap-in-javascript--11ho?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3