$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?> जावास्क्रिप्ट में लेट

जावास्क्रिप्ट में "लेट" और "वेर" के बीच अंतर को समझना

JavaScript

जावास्क्रिप्ट में परिवर्तनीय घोषणाओं को समझना

जावास्क्रिप्ट की दुनिया में, स्वच्छ और कुशल कोड लिखने के लिए लेट और वेर के बीच अंतर को समझना महत्वपूर्ण है। ईसीएमएस्क्रिप्ट 6 में प्रस्तुत, लेट स्टेटमेंट ने वेरिएबल घोषणा में एक नया आयाम जोड़ा है, जिसे अक्सर वेरिएबल के दायरे पर अधिक नियंत्रण प्रदान करने के रूप में वर्णित किया जाता है।

जबकि दोनों होने देना और वर वेरिएबल घोषित करने के लिए उपयोग किया जाता है, वे विभिन्न व्यवहार प्रदर्शित करते हैं जो आपके कोड को महत्वपूर्ण रूप से प्रभावित कर सकते हैं। इस लेख में, हम इन अंतरों का पता लगाएंगे और कब उपयोग करना है इसके बारे में मार्गदर्शन प्रदान करेंगे होने देना के बजाय वर.

आज्ञा विवरण
var एक वैरिएबल घोषित करता है, वैकल्पिक रूप से इसे एक मान पर प्रारंभ करता है। यह फ़ंक्शन-स्कोप्ड या वैश्विक-स्कोप्ड है और इसे फिर से घोषित और अद्यतन किया जा सकता है।
let एक ब्लॉक-स्कोप्ड स्थानीय वैरिएबल घोषित करता है, वैकल्पिक रूप से इसे एक मान पर आरंभ करता है। इसे उसी दायरे में दोबारा घोषित नहीं किया जा सकता.
const एक ब्लॉक-स्कोप्ड, केवल पढ़ने योग्य स्थिरांक की घोषणा करता है। इसे घोषणा के समय प्रारंभ किया जाना चाहिए और इसे पुन: असाइन नहीं किया जा सकता है।
writeHead Node.js में HTTP प्रतिक्रिया के लिए स्थिति कोड और हेडर सेट करता है।
createServer Node.js में एक HTTP सर्वर बनाता है, जो अनुरोधों को सुन सकता है और उनका जवाब दे सकता है।
listen निर्दिष्ट पोर्ट पर आने वाले कनेक्शनों को सुनना शुरू करने के लिए सर्वर को सेट करता है।
console.log संदेशों को कंसोल पर प्रिंट करता है, जो डिबगिंग उद्देश्यों के लिए उपयोगी है।

अभ्यास में "लेट" और "वेर" में अंतर कैसे है

फ्रंटएंड स्क्रिप्ट उदाहरण इनके बीच मुख्य अंतर को दर्शाता है और . में फ़ंक्शन, चर var x एक if ब्लॉक के भीतर घोषित किया जाता है और पूरे फ़ंक्शन दायरे के भीतर एक ही वेरिएबल को पुन: असाइन करता है। इसके परिणामस्वरूप दोनों कंसोल लॉग 2 आउटपुट देते हैं, जो दर्शाता है कि कैसे ब्लॉक स्कोप का सम्मान नहीं करता. इसके विपरीत, फ़ंक्शन घोषित करता है if ब्लॉक के अंदर और बाहर दोनों। let ब्लॉक के अंदर घोषणा एक अलग चर है, इसलिए पहला कंसोल लॉग आउटपुट 2, और दूसरा कंसोल लॉग आउटपुट 1, ब्लॉक स्कोप का सम्मान करता है।

बैकएंड Node.js उदाहरण इन अंतरों को और अधिक प्रदर्शित करने के लिए एक सरल HTTP सर्वर सेट करता है। का उपयोग करते हुए एक if ब्लॉक के भीतर, हम उसे देखते हैं बाहरी को अधिलेखित कर देता है कार्य क्षेत्र के कारण परिवर्तनशील। let message ब्लॉक के अंदर उस ब्लॉक के लिए स्थानीय रहता है, प्रत्येक ब्लॉक के लिए अलग-अलग संदेशों को आउटपुट करके ब्लॉक-स्कोपिंग प्रदर्शित करता है। का उपयोग और कमांड सर्वर स्थापित करता है, जो क्लाइंट को प्रतिक्रियाएं लिखता है, व्यावहारिक अनुप्रयोगों का प्रदर्शन करता है और let वास्तविक दुनिया के परिदृश्यों में।

जावास्क्रिप्ट में "लेट" और "वेर" के बीच अंतर करना

फ्रंटएंड जावास्क्रिप्ट उदाहरण

// Example demonstrating the difference between 'var' and 'let'
function varTest() {
    var x = 1;
    if (true) {
        var x = 2;  // same variable
        console.log(x);  // 2
    }
    console.log(x);  // 2
}

function letTest() {
    let y = 1;
    if (true) {
        let y = 2;  // different variable
        console.log(y);  // 2
    }
    console.log(y);  // 1
}

varTest();
letTest();

"लेट" और "वेर" के साथ स्कोपिंग को समझना

बैकएंड Node.js उदाहरण

// Backend example using Node.js to demonstrate 'let' and 'var'
const http = require('http');

http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    var count = 10;
    let message = "The count is: ";

    if (true) {
        var count = 20;  // 'count' is hoisted and overwritten
        let message = "New count is: ";  // block-scoped
        res.write(message + count);  // New count is: 20
    }
    res.write(message + count);  // The count is: 20
    res.end();
}).listen(8080);

console.log('Server running at http://127.0.0.1:8080/');

दायरे और उत्थापन में गहराई से उतरें

तुलना करते समय विचार करने योग्य एक अन्य महत्वपूर्ण पहलू और फहरा रहा है. होइस्टिंग घोषणाओं को वर्तमान दायरे के शीर्ष पर ले जाने का जावास्क्रिप्ट का व्यवहार है। साथ , वेरिएबल्स को फहराया जाता है और आरंभ किया जाता है undefined, जिसके घोषित होने से पहले यदि वेरिएबल का उपयोग किया जाता है तो अप्रत्याशित परिणाम हो सकते हैं। इसके विपरीत, भी फहराया गया है, लेकिन इसे प्रारंभ नहीं किया गया है। इसका अर्थ है a तक पहुँचना इसकी घोषणा से पहले वेरिएबल का परिणाम होगा a .

इसके अतिरिक्त, लूप में बंद होने की समस्याओं को रोकने में मदद करता है। उपयोग करते समय एक लूप में, सभी पुनरावृत्तियाँ एक ही वेरिएबल को संदर्भित करती हैं, जिससे बग हो सकते हैं। तथापि, प्रत्येक पुनरावृत्ति के लिए एक नया बाइंडिंग बनाता है, यह सुनिश्चित करते हुए कि प्रत्येक लूप पुनरावृत्ति का अपना दायरा है। यह व्यवहार बनाता है let लूप के भीतर वेरिएबल घोषित करने के लिए एक सुरक्षित और अधिक पूर्वानुमानित विकल्प।

  1. जावास्क्रिप्ट में उत्थापन क्या है?
  2. होइस्टिंग घोषणाओं को वर्तमान दायरे के शीर्ष पर ले जाने का जावास्क्रिप्ट का डिफ़ॉल्ट व्यवहार है। घोषणाएँ फहराई जाती हैं और आरंभ की जाती हैं , जबकि घोषणाएँ फहराई जाती हैं लेकिन आरंभ नहीं की जाती हैं।
  3. यदि आप a का उपयोग करते हैं तो क्या होता है? इसकी घोषणा से पहले परिवर्तनीय?
  4. ए तक पहुँचना इसकी घोषणा से पहले परिवर्तनीय का परिणाम a होता है .
  5. कर सकना और उसी दायरे में पुनः घोषित किया जाए?
  6. नहीं, जबकि उसी दायरे में पुनः घोषित नहीं किया जा सकता उसी दायरे में पुनः घोषित किया जा सकता है।
  7. क्यों लूप में बेहतर?
  8. लूप के प्रत्येक पुनरावृत्ति के लिए एक नया बाइंडिंग बनाता है, यह सुनिश्चित करते हुए कि प्रत्येक लूप पुनरावृत्ति का अपना दायरा है। यह क्लोजर से जुड़े सामान्य बग को रोकता है।
  9. करता है ब्लॉक स्कोप का सम्मान करें?
  10. नहीं, ब्लॉक स्कोप का सम्मान नहीं करता; यह फ़ंक्शन-स्कोप्ड या वैश्विक-स्कोप्ड है।
  11. टेम्पोरल डेड जोन क्या है?
  12. टेम्पोरल डेड ज़ोन, दायरे में प्रवेश करने और चर की वास्तविक घोषणा के बीच का समय है, जिसके दौरान किसी तक पहुंच होती है वेरिएबल एक फेंक देगा .
  13. कर सकना के समान उपयोग किया जाए ?
  14. हाँ, ब्लॉक-स्कोप जैसा है , लेकिन इसका उपयोग उन वेरिएबल्स को घोषित करने के लिए किया जाता है जिन्हें पुन: असाइन नहीं किया जाना चाहिए।
  15. कब चाहिए अधिक उपयोग किया जाए ?
  16. का अधिक उपयोग किया जाना चाहिए जब आपको ब्लॉक स्कोप की आवश्यकता हो और वेरिएबल उत्थापन और क्लोजर की समस्याओं से बचना हो।

परिवर्तनीय घोषणाओं पर अंतिम विचार

अंत में, का परिचय ईसीएमएस्क्रिप्ट 6 में डेवलपर्स को जावास्क्रिप्ट में वेरिएबल घोषणा के लिए अधिक मजबूत टूल प्रदान किया गया है। के बीच के अंतर को समझना और स्वच्छ, अधिक रखरखाव योग्य कोड लिखने के लिए आवश्यक है। जबकि var कुछ स्थितियों में अभी भी उपयोगी हो सकता है, स्कोप और उत्थापन पर बेहतर नियंत्रण प्रदान करता है, जिससे बग की संभावना कम हो जाती है।

चुनने के द्वारा ऊपर उपयुक्त परिदृश्यों में, डेवलपर्स ब्लॉक-स्कोपिंग का लाभ उठा सकते हैं और परिवर्तनीय घोषणा और उत्थापन से जुड़े सामान्य नुकसान से बच सकते हैं। आधुनिक जावास्क्रिप्ट विकास में महारत हासिल करने के इच्छुक किसी भी व्यक्ति के लिए यह ज्ञान मौलिक है।