इस लेख के साथ जावास्क्रिप्ट स्ट्रिंग्स के बारे में अपने ज्ञान को बढ़ाएँ!
जावास्क्रिप्ट में स्ट्रिंग्स कैसे काम करती हैं, इस पर एक संक्षिप्त लेख। यह स्ट्रिंग्स की अपरिवर्तनीयता, तुलना तंत्र, और स्ट्रिंग्स के लिए मेमोरी आवंटन अनुकूलन को कवर करता है।
आइए कुछ प्रश्नों के साथ शुरू करें: यह कोड क्या आउटपुट करेगा?
const str = "Hello";
str[2] = "a";
console.log(str);
और अगर हम const
को let
से बदल दें तो क्या होगा?
let str = "Hello";
str[2] = "a";
console.log(str);
इस कोड को अपने ब्राउज़र कंसोल में दर्ज करें और देखें कि क्या होता है।
जावास्क्रिप्ट में, स्ट्रिंग्स अपरिवर्तनीय होती हैं। इसका मतलब है कि चाहे वेरिएबल let
या const
के साथ घोषित किया गया हो, मान नहीं बदलेगा, और दोनों मामलों में, "Hello" आउटपुट होगा।
लेकिन अगर हम स्ट्रिंग संयोजन के साथ असाइनमेंट ऑपरेटर जोड़ें:
const str = "Hello";
str += " World";
console.log(str);
यह कोड TypeError: Assignment to constant variable
का परिणाम देगा क्योंकि हमने स्ट्रिंग को const
के रूप में घोषित किया है। आइए इसे let
में बदलें:
let str = "Hello";
str += " World";
console.log(str);
जावास्क्रिप्ट में, जब एक स्ट्रिंग से दूसरे स्ट्रिंग को मान सौंपा जाता है, तो स्ट्रिंग्स कॉपी की जाती हैं। इसलिए, यह कोड "Hello World" आउटपुट करेगा। लेख के अंत में, हम चरण दर चरण समझाएँगे कि ऐसा कोड कैसे काम करता है।
आइए स्ट्रिंग कॉपी करने में गहराई से जाएँ। यह कोड क्या आउटपुट करेगा और क्यों?
const str1 = "Hello";
const str2 = str1;
console.log(str1 === str2);
जावास्क्रिप्ट में एक स्ट्रिंग की कॉपी करते समय, स्ट्रिंग ऑब्जेक्ट के लिए एक नया संदर्भ बनाया जाता है, लेकिन स्ट्रिंग स्वयं मेमोरी में डुप्लिकेट नहीं होती है। इसलिए, जब str1 === str2
की तुलना की जाती है, तो true
आउटपुट होगा। यहाँ एक विस्तृत विवरण है:
- स्ट्रिंग
'Hello'
बनाना: स्ट्रिंग'Hello'
को स्टोर करने के लिए मेमोरी आवंटन। - दूसरे वेरिएबल को मान सौंपना: वेरिएबल
str2
को मेमोरी में वेरिएबलstr1
के समान स्ट्रिंग ऑब्जेक्ट के लिए एक संदर्भ मिलता है। - वेरिएबल तुलना: जब
str1 === str2
की तुलना की जाती है, तो जावास्क्रिप्ट पहले संदर्भ मानों की तुलना करता है, न कि स्वयं स्ट्रिंग्स की। चूंकि दोनों वेरिएबल्स मेमोरी में एक ही स्ट्रिंग ऑब्जेक्ट का संदर्भ देते हैं, तुलनाtrue
लौटाएगी।
लेकिन अगर हम स्ट्रिंग की कॉपी न करें और इसके बजाय पहले वाले के समान मान के साथ एक नया बनाएं तो क्या होगा? यह कोड क्या आउटपुट करेगा, क्यों, और यह कैसे काम करता है?
const str1 = "Hello";
const str2 = "Hello";
console.log(str1 === str2);
- जब
const str1 = 'Hello'
घोषित किया जाता है, तो स्ट्रिंग'Hello'
को स्टोर करने के लिए मेमोरी आवंटित की जाती है। - फिर, जब
const str2 = 'Hello'
घोषित किया जाता है, तो जावास्क्रिप्ट मेमोरी उपयोग को अनुकूलित करता है और दोनों वेरिएबल्स के लिए केवल एक स्ट्रिंग ऑब्जेक्ट बनाता है। स्ट्रिंग'Hello'
के लिए नई मेमोरी आवंटित करने के बजाय, जावास्क्रिप्ट पता लगाता है कि स्ट्रिंग'Hello'
पहले से ही मेमोरी में मौजूद है (जैसा किstr1
घोषित करने के परिणामस्वरूप) और वेरिएबलstr2
के लिए इस समान स्ट्रिंग के लिए केवल एक संदर्भ बनाता है। - जब
console.log(str1 === str2)
निष्पादित किया जाता है, तो वेरिएबल्सstr1
औरstr2
के बीच तुलना की जाती है। चूंकि दोनों वेरिएबल्स मेमोरी में एक ही स्ट्रिंग ऑब्जेक्ट का संदर्भ देते हैं, तुलनाtrue
लौटाएगी।
अब, आइए स्ट्रिंग्स के संयोजन को अधिक विस्तार से देखें:
const str1 = "Hello";
const str2 = str1 + "2";
console.log(str1 === str2);
- जब
const str1 = 'Hello'
घोषित किया जाता है, तो स्ट्रिंग'Hello'
के लिए मेमोरी आवंटित की जाती है। - जब
const str2 = str1 + '2'
घोषित किया जाता है, तो स्ट्रिंग संयोजन होता है। जावास्क्रिप्टstr1
की सामग्री (जिसमें'Hello'
होता है) और स्ट्रिंग'2'
को मिलाकर एक नई स्ट्रिंग बनाता है। चूंकि जावास्क्रिप्ट में स्ट्रिंग्स अपरिवर्तनीय होती हैं, संयोजन परिणाम के लिए एक नया स्ट्रिंग ऑब्जेक्ट बनाया जाता है, इस मामले में'Hello2'
। - जब
console.log(str1 === str2)
निष्पादित किया जाता है, चूंकिstr1
में'Hello'
होता है औरstr2
में'Hello2'
होता है, वे मेमोरी में विभिन्न स्ट्रिंग ऑब्जेक्ट्स की ओर इशारा करते हैं, और तुलनाfalse
लौटाएगी।
अगला पढ़ें
- 12 अप्रैल 2025
मैं अपने ब्लॉग का SEO कैसे सुधार रहा हूँ: विश्लेषण और भविष्य की योजनाएं
समझें कि ब्लॉग ट्रैफिक कहां से आता है, लॉन्ग-टेल कीवर्ड्स का उपयोग कैसे करें, और हेडलाइन, मेटा विवरण और आंतरिक संरचना को सुधारें।
- 3 अप्रैल 2025
SEO और संरचना से ब्लॉग की वृद्धि 2,700 प्रति माह
SEO और साइट संरचना ने मेरे ब्लॉग को 2,700 मासिक आगंतुकों तक पहुँचाया। SEO के मुख्य सिद्धांत।