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:
*¿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:
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:
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.
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