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

जावास्क्रिप्ट मान बनाम संदर्भ

2024-07-31 को प्रकाशित
ब्राउज़ करें:498

JavaScript values vs reference

समझें कि जावास्क्रिप्ट में वेरिएबल्स को मान या संदर्भ के रूप में कैसे रखा जाता है

जावास्क्रिप्ट में, या प्रोग्रामिंग में, एक वेरिएबल कंप्यूटर की मेमोरी में एक स्थान होता है जिसका उपयोग डेटा संग्रहीत करने के लिए किया जाता है। वेरिएबल घोषित किए जाते हैं (एक नाम, एक पहचानकर्ता दिया जाता है) और भाषा के आधार पर उन्हें तुरंत या बाद में एक मान सौंपा जा सकता है। इस वेरिएबल को फिर से उसी मान को स्पष्ट रूप से बताने के बजाय प्रोग्राम में बाद में संदर्भित किया जा सकता है।

जावास्क्रिप्ट में, डेटा को मानों के रूप में प्रसारित किया जाता है, ये मान या तो आदिम या ऑब्जेक्ट मान हो सकते हैं। एक जावास्क्रिप्ट डेवलपर के रूप में, यह समझना कि जावास्क्रिप्ट डेटा को कैसे संभालता है, भाषा में मजबूत बुनियादी बातें रखने के लिए महत्वपूर्ण है।

आदिम मूल्यों में शामिल हैं:

  • स्ट्रिंग्स.
  • नंबर.
  • बूलियन्स।
  • बिगइंट.
  • प्रतीक।
  • अपरिभाषित।

दूसरी ओर वस्तु मान हैं:

  • सरणी.
  • कार्य।
  • ऑब्जेक्ट्स.

ये मूल्य प्रकार पारित होने पर अलग-अलग व्यवहार करते हैं, नीचे दिए गए स्निपेट पर विचार करें:

var myName = "फ्रेड";
var अन्यनाम = मेरा नाम;
मेरा नाम = "एशले";
कंसोल.लॉग(मेरा नाम); //एशले
कंसोल.लॉग(अन्यनाम); //फ्रेड

ध्यान दें कि अन्य नाम वही रहा, भले ही यह मेरे नाम की "प्रतिलिपि" जैसा प्रतीत होता हो। वास्तव में, वास्तव में जो हुआ वह यह है कि जब अन्य नाम को मेरा नाम सौंपा गया था, तो इसे स्ट्रिंग "फ्रेड" की एक प्रति के रूप में नहीं सौंपा गया था, बल्कि, एक नई स्ट्रिंग "फ्रेड" बनाई गई थी। इस प्रकार, मेरे नाम और अन्य नाम के बीच कोई सीधा संबंध नहीं है। इस प्रकार जावास्क्रिप्ट आदिम मूल्यों को प्रसारित करता है।

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

var myObj = {रंग: "लाल"};
var अन्यObj = myObj;
myObj.color = "नीला";
कंसोल.लॉग(myObj.color); //नीला
कंसोल.लॉग(अन्यObj.रंग); //नीला

यहां, और ऑब्जेक्ट बनाया गया था और myObj को सौंपा गया था, जिसे बाद में अन्यObj को सौंपा गया था, देखें कि myObj की रंग संपत्ति को बदलकर अन्यObj और myObj रंग गुण दोनों कैसे बदल गए थे। ऐसा इसलिए है क्योंकि ऑब्जेक्ट मानों को संदर्भ के रूप में पारित किया जाता है। myObj सीधे ऑब्जेक्ट को संदर्भित नहीं करता है, यह इसके बजाय इसके संदर्भ को इंगित करता है, अन्यObj को फिर myObj सौंपा जाता है जो वास्तविक ऑब्जेक्ट का संदर्भ है। इसलिए, दोनों चर एक ही वस्तु से जुड़े हुए हैं क्योंकि वे एक ही संदर्भ की ओर इशारा करते हैं, एक में परिवर्तन दूसरे को प्रभावित करता है।

यही कारण है कि दो वस्तुओं की तुलना (===) सीधे तौर पर गलत परिणाम देती है, आप वस्तुतः दो अलग-अलग संदर्भों की तुलना कर रहे हैं। यहां, myObj === अन्यObj सत्य लौटाता है क्योंकि हम समान संदर्भों की तुलना कर रहे हैं।

मुझे आशा है कि इससे आपको एक नया दृष्टिकोण मिलेगा कि जावास्क्रिप्ट पर्दे के पीछे कैसे काम करता है।

तब तक, बग-मुक्त रहें।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/js_cipher/javascript-values-vs-reference-1ao5?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3