"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट में स्टैक और हीप को समझना।

जावास्क्रिप्ट में स्टैक और हीप को समझना।

2024-11-03 को प्रकाशित
ब्राउज़ करें:225

Understanding Stack and Heap in JavaScript .

जावास्क्रिप्ट में, स्टैक और हीप दो प्रकार की मेमोरी हैं जिनका उपयोग डेटा को प्रबंधित करने के लिए किया जाता है, प्रत्येक का एक अलग उद्देश्य होता है:

  1. ढेर
  2. ढेर

*स्टैक और हीप क्या हैं *
स्टैक: स्टैक का उपयोग स्थैतिक मेमोरी आवंटन के लिए किया जाता है, मुख्य रूप से आदिम प्रकार और फ़ंक्शन कॉल को संग्रहीत करने के लिए। यह एक सरल, लास्ट-इन, फ़र्स्ट-आउट (LIFO) संरचना है, जो इसे एक्सेस करने में बहुत तेज़ बनाती है।

हीप: हीप का उपयोग गतिशील मेमोरी आवंटन के लिए किया जाता है, जहां ऑब्जेक्ट और एरेज़ (गैर-आदिम प्रकार) संग्रहीत होते हैं। स्टैक के विपरीत, हीप अधिक जटिल है और पहुंच में धीमा है, क्योंकि यह लचीली मेमोरी आवंटन की अनुमति देता है।

स्टैक मेमोरी का उदाहरण:

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)

इस उदाहरण में:

  • मेरा नाम स्टैक में एक आदिम प्रकार के रूप में संग्रहीत है।
  • जब उपनाम को myName का मान निर्दिष्ट किया जाता है, तो उस मान की एक प्रति स्टैक में बनाई जाती है।
  • उपनाम बदलने से मेरा नाम प्रभावित नहीं होता है, क्योंकि वे मेमोरी में स्वतंत्र प्रतियां हैं।

हीप मेमोरी का उदाहरण
अब देखते हैं कि हीप में गैर-आदिम डेटा प्रकार (ऑब्जेक्ट्स) को कैसे प्रबंधित किया जाता है।

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]

इस उदाहरण में:

  • userOne हीप में संग्रहीत किसी ऑब्जेक्ट का संदर्भ रखता है। -userTwo को एक ही संदर्भ सौंपा गया है, जिसका अर्थ है कि userOne और userTwo दोनों हीप में एक ही ऑब्जेक्ट को इंगित करते हैं। -userTwo.email को बदलने से userOne.email पर सीधा असर पड़ता है, क्योंकि दोनों संदर्भ मेमोरी में एक ही स्थान की ओर इशारा करते हैं।

चाबी छीनना
*स्टैक मेमोरी * का उपयोग आदिम प्रकार और फ़ंक्शन कॉल को संग्रहीत करने के लिए किया जाता है। हर बार जब आप कोई मान निर्दिष्ट करते हैं, तो स्टैक में एक नई प्रतिलिपि बनाई जाती है।
*हीप मेमोरी * का उपयोग वस्तुओं और सरणियों को संग्रहीत करने के लिए किया जाता है। वेरिएबल जो एक ही ऑब्जेक्ट को संदर्भित करते हैं, मेमोरी में समान मेमोरी स्थान साझा करते हैं, इसलिए एक वेरिएबल को बदलने से दूसरे वेरिएबल प्रभावित होते हैं।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/amar_x_vr/understand-stack-and-heap-in-javascript--11ho?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3