इस लेख के साथ जावास्क्रिप्ट स्ट्रिंग्स के बारे में अपने ज्ञान को बढ़ाएँ!
जावास्क्रिप्ट में स्ट्रिंग्स कैसे काम करती हैं, इस पर एक संक्षिप्त लेख। यह स्ट्रिंग्स की अपरिवर्तनीयता, तुलना तंत्र, और स्ट्रिंग्स के लिए मेमोरी आवंटन अनुकूलन को कवर करता है।
आइए कुछ प्रश्नों के साथ शुरू करें: यह कोड क्या आउटपुट करेगा?
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 फ़रवरी 2026

AI के युग में वेबसाइट का पुनः डिज़ाइन और पारंपरिक SEO का अंत
मेरी वेबसाइट के पुनः डिज़ाइन की कहानी, GSAP एनीमेशन और क्यों AI के युग में डिज़ाइन अब खोज से ट्रैफ़िक नहीं लाता।
- 9 जनवरी 2026

ट्रैफ़िक रिपोर्ट: दिसंबर 2025 – जनवरी 2026
पिछले 30 दिनों में वेबसाइट ट्रैफ़िक — एक संक्षिप्त रिपोर्ट और अवलोकन।
