En JavaScript, la pile et le tas sont deux types de mémoire utilisés pour gérer les données, chacun ayant un objectif distinct :
*Que sont la pile et le tas *
Stack : La pile est utilisée pour l'allocation de mémoire statique, principalement pour stocker les types primitifs et les appels de fonction. Il s'agit d'une structure simple, dernier entré, premier sorti (LIFO), ce qui la rend très rapide d'accès.
Heap : Le Heap est utilisé pour l'allocation dynamique de mémoire, où les objets et les tableaux (types non primitifs) sont stockés. Contrairement à la pile, le tas est plus complexe et plus lent d'accès, car il permet une allocation de mémoire flexible.
Exemple de mémoire de pile :
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)
Dans cet exemple :
Exemple de mémoire de tas
Vérifions maintenant comment les types de données (objets) non primitifs sont gérés dans le tas.
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]
Dans cet exemple :
Principaux points à retenir
*Stack Memory * est utilisé pour stocker les types primitifs et les appels de fonction. Chaque fois que vous attribuez une valeur, une nouvelle copie est créée dans la pile.
*Heap Memory * est utilisé pour stocker des objets et des tableaux. Les variables qui font référence au même objet partagent le même emplacement mémoire, donc la modification d'une variable affecte les autres.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3