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

JavaScript में फंक्शन एक्सप्रेशन और फंक्शन डिक्लेरेशन में अंतर

फंक्शन डिक्लेरेशन (Function Declaration)

फंक्शन डिक्लेरेशन में function कीवर्ड से शुरू होकर फंक्शन को परिभाषित किया जाता है। इसकी मुख्य विशेषता होइस्टिंग (hoisting) है - फंक्शन को उसके डिक्लेरेशन से पहले भी कॉल किया जा सकता है।

function sayHello(name, age) {
  document.write(name + " is " + age + " years old.");
}

// होइस्टिंग के कारण यह काम करता है
sayHello("Amit", 25);  // फंक्शन डिक्लेरेशन से पहले कॉल

फंक्शन एक्सप्रेशन (Function Expression)

फंक्शन एक्सप्रेशन में फंक्शन को एक वैरिएबल को असाइन किया जाता है। यह function कीवर्ड से शुरू नहीं होता (वैरिएबल असाइनमेंट से शुरू होता है)। इसे होइस्ट नहीं किया जाता - उपयोग से पहले परिभाषित करना आवश्यक है।

अनाम फंक्शन एक्सप्रेशन (Anonymous)

var a = function() {
  return 5;
};

नामित फंक्शन एक्सप्रेशन (Named)

var a = function bar() {
  return 5;
};

मुख्य अंतर

विशेषता फंक्शन डिक्लेरेशन फंक्शन एक्सप्रेशन
होइस्टिंग हाँ (पूरा फंक्शन होइस्ट होता है) नहीं (केवल वैरिएबल डिक्लेरेशन होइस्ट होता है)
नाम आवश्यक वैकल्पिक (अनाम हो सकता है)
उपयोग से पहले कॉल संभव नहीं (ReferenceError फेंकता है)
क्लोजर में उपयोग कम लचीला अधिक लचीला

एरो फंक्शन्स (ES6+)

आधुनिक JavaScript में एरो फंक्शन्स फंक्शन एक्सप्रेशन का संक्षिप्त रूप हैं:

const add = (a, b) => a + b;
const greet = name => `Hello, ${name}!`;

कौन सा उपयोग करें?

  • फंक्शन डिक्लेरेशन: पुन: प्रयोज्य यूटिलिटी फंक्शन्स के लिए
  • फंक्शन एक्सप्रेशन/एरो फंक्शन: कॉलबैक्स, क्लोजर्स, मेथड्स के लिए
  1. जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप

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

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

    जावास्क्रिप्ट में नेम्ड फ़ंक्शन एक्सप्रेशन लागू करने के लिए निम्नलिखित कोड है। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <t

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

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