Maison >interface Web >js tutoriel >Comprendre la pile et le tas en JavaScript.
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 Stack et Heap *
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 Stack, le Heap 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: "user@google.com", 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 = "amar@google.com"; // Modifying userTwo also affects userOne. console.log(userOne.email); // Output: amar@google.com console.log(userTwo.email); // Output: amar@google.com
Dans cet exemple :
Points clés à 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 en mémoire, donc la modification d'une variable affecte les autres.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!