-
भूले हुए टाइमर्स या कॉलबैक्स JavaScript में मेमोरी लीक कैसे पैदा कर सकते हैं?
भूले हुए टाइमर्स/कॉलबैक्सJavaScript में दो टाइमिंग इवेंट्स हैं: setTimeout() और setInterval()। पहला निर्दिष्ट मिलीसेकंड्स की प्रतीक्षा के बाद एक फ़ंक्शन निष्पादित करता है, जबकि दूसरा एक फ़ंक्शन को आवधिक रूप से निष्पादित करता है (समय के निश्चित अंतराल पर दोहराता है)।जब कोई ऑब्जेक्ट टाइमर कॉलबैक से जु
-
JavaScript में सेट्स (Sets) समझाएं?
सेट्सSet ES6 द्वारा प्रदान किया गया एक नया ऑब्जेक्ट प्रकार है। यह मानों का एक संग्रह है, जो अद्वितीय हैं। मान या तो सरल प्रिमिटिव्स जैसे स्ट्रिंग्स, इंटीजर्स आदि हो सकते हैं या कॉम्प्लेक्स ऑब्जेक्ट टाइप्स जैसे ऑब्जेक्ट लिटरल्स या सरणियाँ।सिंटैक्सnew Set([iterable]);पैरामीटर्सiterableयह एक इटरेबल ऑब्
-
JavaScript में क्विक सॉर्ट (Quick Sort) कैसे लागू करें?
क्विक सॉर्टक्विक सॉर्ट JavaScript में सबसे महत्वपूर्ण सॉर्टिंग मेथड्स में से एक है। यह एक सरणी से एक पिवट मान (एक रैंडम मान) लेता है। सरणी के अन्य सभी तत्वों को दो श्रेणियों में विभाजित किया जाता है। वे पिवट मान से कम और पिवट मान से अधिक हो सकते हैं।उसके बाद प्रत्येक श्रेणी (पिवट से कम और पिवट से अध
-
क्लोजर्स (Closures) मेमोरी लीक कैसे पैदा कर सकते हैं और इसे कैसे रोकें?
क्लोजरJavaScript की ताकत में से एक क्लोजर्स है। JavaScript नेस्टेड फ़ंक्शंस की अनुमति देता है, यानी एक फ़ंक्शन के अंदर फ़ंक्शन, पैरेंट फ़ंक्शंस के चरों को एक्सेस करने के लिए। एक आंतरिक फ़ंक्शन द्वारा बाहरी फ़ंक्शन के चर को एक्सेस करने की इस प्रक्रिया को क्लोजर कहा जाता है। मेमोरी लीक तब होती है जब ए
-
JavaScript में Map और WeakMap में क्या अंतर है?
Map और WeakMap के बीच अंतरMap और WeakMap का कार्यात्मक तंत्र समान है लेकिन उनमें थोड़े अंतर हैं।1) एक WeakMap केवल ऑब्जेक्ट्स को कुंजी के रूप में स्वीकार करता है जबकि एक Map, ऑब्जेक्ट्स के अलावा, स्ट्रिंग्स, नंबर्स आदि जैसे प्रिमिटिव डेटा टाइप्स को भी स्वीकार करता है।2) WeakMap ऑब्जेक्ट्स गार्बेज कल
-
JavaScript में mean.io और mean.js के बीच अंतर क्या हैं?
Mean.io और Mean.js के बीच अंतरMEAN एक स्टैक फ्रेमवर्क है। जब इसे MongoDB, Node.js, Express.js और Angular.js के साथ जोड़ा जाता है तो यह एक पूर्ण JavaScript वेब ऐप बनाने में मदद करता है। इज़राइल के एक सॉफ़्टवेयर डेवलपर, अमोस हाविव, Mean.io शुरू करने वाले पहले व्यक्ति थे। Mean.js बस Mean.io से फोर्क कि
-
JavaScript में स्ट्रिक्ट मोड (Strict Mode) क्या है?
स्ट्रिक्ट मोडस्ट्रिक्ट मोड को ECMAScript 5 द्वारा JavaScript में पेश किया गया था। स्ट्रिक्ट मोड का उपयोग करके JavaScript के साइलेंट एरर्स का आसानी से पता लगाया जा सकता है क्योंकि वे एरर फेंकेंगे। इससे JavaScript डीबगिंग बहुत आसान हो जाती है और डेवलपर्स को अनावश्यक गलतियों से बचने में मदद मिलती है।चू
-
JavaScript में ऑब्जेक्ट को फ्रीज (Freeze) कैसे करें?
वास्तविक दुनिया में JavaScript में अन्य भाषाओं की तरह पारंपरिक क्लासेस नहीं होती हैं। इसमें ऑब्जेक्ट्स और कंस्ट्रक्टर्स होते हैं। Object.freeze() कई कंस्ट्रक्टर मेथड्स में से एक है जो ऑब्जेक्ट को फ्रीज करने में मदद करता है।ऑब्जेक्ट को फ्रीज करने से ऑब्जेक्ट में नई प्रॉपर्टीज जोड़ने की अनुमति नहीं मि
-
JavaScript में फिशर-येट्स शफल (Fisher-Yates shuffle) क्या है?
फिशर-येट्स शफल एल्गोरिदमयह एल्गोरिदम सरणी में तत्वों को शफल करने के लिए है। सरणी में तत्वों को शफल करने के लिए हम अपना लॉजिक लिख सकते हैं, लेकिन कई डेवलपर्स मानते हैं कि फिशर-येट्स आधुनिक शफल एल्गोरिदम सरणी में तत्वों को शफल करने का सबसे अच्छा तरीका है। इस एल्गोरिदम के निम्न चरण हैं।पालन करने योग्य
-
JavaScript में पॉलीमॉर्फिज्म कैसे लागू करें?
पॉलीमॉर्फिज्मपॉलीमॉर्फिज्म ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) के सिद्धांतों में से एक है। यह ऑब्जेक्ट्स को इस तरह डिजाइन करने में मदद करता है कि वे विशिष्ट प्रदान किए गए ऑब्जेक्ट्स के साथ व्यवहार को साझा या ओवरराइड कर सकें। पॉलीमॉर्फिज्म इसे संभव बनाने के लिए इनहेरिटेंस का लाभ उठाता है।निम्न उदाहर
-
JavaScript में कर्रिंग (Currying) क्या है?
कर्रिंगकर्रिंग एक तकनीक है जिसमें कई आर्गुमेंट्स वाले फ़ंक्शन का मूल्यांकन एकल आर्गुमेंट वाले फ़ंक्शंस के अनुक्रम में किया जाता है। दूसरे शब्दों में, जब कोई फ़ंक्शन एक बार में सभी आर्गुमेंट्स लेने के बजाय, पहला आर्गुमेंट लेता है और एक नया फ़ंक्शन लौटाता है जो दूसरा आर्गुमेंट लेता है और एक नया फ़ंक्श
-
JavaScript की मेमोरी लाइफ साइकिल के बारे में विस्तार से बताएं?
मेमोरी चक्रप्रोग्रामिंग भाषा चाहे जो भी हो, लगभग सभी प्रोग्रामिंग भाषाओं के लिए मेमोरी चक्र समान होता है।मेमोरी लाइफ साइकिल में 3 चरण होते हैं1) मेमोरी का आवंटन।2) आवंटित मेमोरी का उपयोग (पढ़ना या लिखना)3) जब अनावश्यक हो तो आवंटित मेमोरी को मुक्त करना।पहला और अंतिम भाग निम्न-स्तरीय भाषाओं में सीधे ज
-
JavaScript में रेफरेंस-काउंटिंग गार्बेज कलेक्शन
रेफरेंस-काउंटिंग गार्बेज कलेक्शन सबसे सरल GC एल्गोरिदम: प्रत्येक ऑब्जेक्ट का रेफरेंस काउंट ट्रैक करता है। काउंट 0 होने पर ऑब्जेक्ट कलेक्टेबल। कैसे काम करता है <script> var obj = { x: { y: 2 } }; // 2 ऑब्जेक्ट्स बने // obj → {x: {...}} (काउंट 1) // obj.x → {y: 2} (काउंट 1) obj = 1
-
JavaScript में मेमोरी लीक विस्तार से
JavaScript मेमोरी लीक JavaScript गार्बेज-कलेक्टेड भाषा है: वेरिएबल्स डिक्लेयर करने पर मेमोरी ऑटो-अलोकेट होती है, रेफरेंस खत्म होने पर ऑटो-फ्री। लीक रिलीज फेज में होती हैं जब अनावश्यक मेमोरी रिलीज नहीं होती। सामान्य मेमोरी लीक पैटर्न्स 1. अकस्मात ग्लोबल वेरिएबल्स अनडिक्लेयर्ड वेरिएबल असाइनमेंट ग्ल
-
JavaScript में सर्कुलर रेफरेंस से मेमोरी लीक
सर्कुलर रेफरेंस और मेमोरी लीक सर्कुलर रेफरेंस: दो ऑब्जेक्ट्स एक-दूसरे को रेफर करते हैं। रेफरेंस-काउंटिंग GC में दोनों का काउंट ≥1 रहता है → कभी कलेक्ट नहीं होते। समस्या: हाइब्रिड सिस्टम में लीक पुराने IE (≤7) में DOM + JS अलग GC: DOM = रेफरेंस काउंटिंग, JS = मार्क-एंड-स्वीप। क्रॉस-रेफरेंस लीक का क
-
JavaScript में मर्ज सॉर्ट इम्प्लीमेंटेशन
मर्ज सॉर्ट (Merge Sort) डिवाइड-एंड-कॉन्कर एल्गोरिदम: ऐरे को आधा-आधा विभाजित करें जब तक सिंगल एलिमेंट्स न रह जाएं, फिर सॉर्टेड मर्ज करें। समय जटिलता: O(n log n) (सभी केसेस में)। एल्गोरिदम चरण विभाजन: ऐरे को दो भागों में बांटें, पुनरावर्ती रूप से जारी रखें विजय: सिंगल-एलिमेंट ऐरे पहले से सॉर्टेड है
-
JavaScript में मार्क एंड स्वीप एल्गोरिदम
मार्क एंड स्वीप (Mark and Sweep) गार्बेज कलेक्शन एल्गोरिदम यह रेफरेंस-काउंटिंग का सुधार है। अनावश्यक ऑब्जेक्ट्स के बजाय अनपहुंच योग्य (unreachable) ऑब्जेक्ट्स ढूंढता है। तीन मुख्य चरण रूट (Root): ग्लोबल वेरिएबल्स (ब्राउज़र में window) से शुरूआत मार्क फेज: रूट से पहुंच योग्य सभी ऑब्जेक्ट्स को मार्
-
JavaScript में ऑब्जेक्ट क्लोन करना
JavaScript ऑब्जेक्ट क्लोनिंग क्लोनिंग = ऑब्जेक्ट की प्रॉपर्टीज को नए ऑब्जेक्ट में कॉपी करना ताकि दोनों स्वतंत्र हों। शैलो कॉपी (केवल पहली लेवल) vs डीप कॉपी (नेस्टेड ऑब्जेक्ट्स भी)। तरीका 1: लूप से मैन्युअल कॉपी (शैलो) <html> <body> <p id=demo></p> <script> const sou
-
JavaScript में Map का उपयोग
JavaScript Map ऑब्जेक्ट Map की-वैल्यू पेयर्स का कलेक्शन है जो इंसर्शन ऑर्डर याद रखता है और किसी भी टाइप की कीज़ अनुमति देता है (ऑब्जेक्ट्स के विपरीत जो केवल स्ट्रिंग/सिम्बल कीज़ सपोर्ट करते हैं)। सिंटैक्स new Map([iterable]) समस्या: प्लेन ऑब्जेक्ट्स की सीमा ऑब्जेक्ट्स में ऑब्जेक्ट कीज़ toString()
-
JavaScript में डिटैच्ड DOM एलिमेंट्स से मेमोरी लीक
डिटैच्ड DOM एलिमेंट्स और मेमोरी लीक डिटैच्ड DOM एलिमेंट्स वे एलिमेंट्स हैं जो DOM से हटा दिए गए हैं लेकिन JavaScript रेफरेंस के कारण मेमोरी में बने रहते हैं। जब तक किसी वेरिएबल/ऑब्जेक्ट से रेफरेंस है, गार्बेज कलेक्टर इन्हें साफ नहीं कर सकता। समस्या DOM एक डबल-लिंक्ड ट्री है। एक नोड का रेफरेंस पूरे