डिक्लेरेशन एक नाम वाली फ़ंक्शन स्टेटमेंट है; एक्सप्रेशन एक फ़ंक्शन को वेरिएबल को असाइन करता है। व्यावहारिक अंतर hoisting है।
js
();
() { ; }
();
expressed = () { ; };
डिक्लेरेशन एक नाम वाली फ़ंक्शन स्टेटमेंट है; एक्सप्रेशन एक फ़ंक्शन को वेरिएबल को असाइन करता है। व्यावहारिक अंतर hoisting है।
();
() { ; }
();
expressed = () { ; };
फ़ंक्शन डिक्लेरेशन अपने बॉडी के साथ hoisted होती हैं, इसलिए एक्सीक्यूशन इस पर पहुंचने से पहले पूरी फ़ंक्शन मौजूद होती है। एक फ़ंक्शन एक्सप्रेशन सिर्फ एक मान है जो एक वेरिएबल को असाइन किया जाता है — अर्ली कॉल के समय, expressed अभी भी undefined है (var के साथ) या TDZ में है (let/const के साथ)।
// expression — for callbacks, conditional definitions, arrow functions
const handler = () => doThing();
const fn = condition ? a : b;
arr.map(x => x * 2);
// declaration — clear, hoisted top-level functions
function calculateTotal(items) { ... }
डिक्लेरेशन टॉप-लेवल नाम वाली फ़ंक्शन के लिए अच्छी तरह पढ़े जाते हैं और hoisting से लाभ उठाते हैं (आप उन्हें उनके उपयोग के बाद परिभाषित कर सकते हैं)। एक्सप्रेशन एरो फ़ंक्शन, कॉलबैक, IIFEs, और फ़ंक्शन को सशर्त रूप से असाइन करने के लिए आवश्यक हैं। एरो फ़ंक्शन हमेशा एक्सप्रेशन होते हैं।