Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript फंक्शन परिभाषा: घोषणा vs अभिव्यक्ति

JavaScript में फंक्शन बनाने के दो मुख्य तरीके हैं: फंक्शन डिक्लेरेशन (घोषणा) और फंक्शन एक्सप्रेशन (अभिव्यक्ति)। दोनों के अलग-अलग व्यवहार और उपयोग के मामले हैं।

उदाहरण

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> 
    body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; padding: 20px; } 
    .sample { font-size: 18px; font-weight: 500; font-family: monospace; white-space: pre-wrap; } 
    button { padding: 10px 20px; background: #6f42c1; color: white; border: none; border-radius: 4px; cursor: pointer; } 
</style> </head> <body> 
<h1>JavaScript फंक्शन परिभाषाएं</h1> 
<div class="sample"></div> 
<button class="Btn">फंक्शन परिभाषाएं दिखाएं</button> 
<h3>ऊपर दिए गए बटन पर क्लिक करके फंक्शन परिभाषाएं देखें</h3> 
<script> 
    const sampleEle = document.querySelector(".sample"); 
    
    // फंक्शन डिक्लेरेशन (होइस्ट होता है)
    function helloWorld() { 
        alert("HELLO WORLD"); 
    } 
    
    // फंक्शन एक्सप्रेशन (होइस्ट नहीं होता)
    const testFunction = function() { 
        alert("TEST FUNCTION"); 
    }; 
    
    // एरो फंक्शन (ES6)
    const arrowFunc = () => alert("ARROW FUNCTION"); 
    
    document.querySelector(".Btn").addEventListener("click", () => { 
        sampleEle.innerHTML = "helloWorld (डिक्लेरेशन):\n" + helloWorld.toString() + "\n\n"; 
        sampleEle.innerHTML += "testFunction (एक्सप्रेशन):\n" + testFunction.toString() + "\n\n"; 
        sampleEle.innerHTML += "arrowFunc (एरो):\n" + arrowFunc.toString(); 
    }); 
</script> </body> </html>

आउटपुट

बटन क्लिक करने पर तीनों फंक्शन के सोर्स कोड प्रदर्शित होंगे।

तुलना तालिका

विशेषताफंक्शन डिक्लेरेशनफंक्शन एक्सप्रेशनएरो फंक्शन
सिंटैक्सfunction name() {}const fn = function() {}const fn = () => {}
होइस्टिंग✅ पूरा होइस्ट❌ केवल वेरिएबल❌ केवल वेरिएबल
this बाइंडिंगडायनामिकडायनामिकलेक्सिकल (पैरेंट से)
arguments ऑब्जेक्ट✅ उपलब्ध✅ उपलब्ध❌ उपलब्ध नहीं
new के साथ उपयोग✅✅❌
प्रोटोटाइप✅✅❌

कब क्या उपयोग करें?

  • डिक्लेरेशन: मुख्य फंक्शन्स, लाइब्रेरी API, जब होइस्टिंग चाहिए
  • एक्सप्रेशन: कॉलबैक, IIFE, कंडीशनल फंक्शन डेफिनिशन
  • एरो: शॉर्ट कॉलबैक, मैप/फिल्टर/रिड्यूस, जब लेक्सिकल this चाहिए
  1. JavaScript Number() फंक्शन JavaScript Number() फंक्शन

    JavaScript Number() फंक्शन ऑब्जेक्ट वैल्यू को तर्क के रूप में पास करके उसके संबंधित न्यूमेरिक वैल्यू में बदल देता है।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,

  1. जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप

    जावास्क्रिप्ट में बनाए गए फ़ंक्शन्स में हमेशा जावास्क्रिप्ट इंजन द्वारा प्रोटोटाइप प्रॉपर्टी जोड़ी जाती है। प्रोटोटाइप प्रॉपर्टी एक ऑब्जेक्ट है जिसमें डिफ़ॉल्ट रूप से कंस्ट्रक्टर प्रॉपर्टी होती है। फ़ंक्शन प्रोटोटाइप को निम्न द्वारा एक्सेस किया जा सकता है - functionName.prototype जब ऑब्जेक्ट्स को फ

  1. जावास्क्रिप्ट में फ़ंक्शन बॉरोइंग जावास्क्रिप्ट में फ़ंक्शन बॉरोइंग

    call(), apply() और bind() का उपयोग जावास्क्रिप्ट में मेथड्स बॉरो करने के लिए किया जाता है। जावास्क्रिप्ट में मेथड्स बॉरो करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport&qu