फंक्शन

मान लीजिए कि आप कार्ट में आइटम की कीमत निर्धारित कर रहे हैं। आप एक संख्या लेते हैं, टैक्स जोड़ते हैं, इसे राउंड करते हैं, और इसे करेंसी प्रतीक के साथ फॉर्मेट करते हैं। फिर आपको अगली आइटम के लिए यह फिर से करना है, और अगली के लिए भी। इन चार चरणों को हर जगह कॉपी करना यही है कि कैसे बग आते हैं: एक जगह राउंडिंग को ठीक करें और आपके पास अभी भी तीन और कॉपी गलत हैं। एक फंक्शन आपको उन चरणों के ब्लॉक को एक बार नाम देने देता है और जब भी आपको इसकी आवश्यकता हो तब चलाता है। यह अध्याय उन ब्लॉकों को लिखने, उन्हें इनपुट देने, और वैल्यू वापस पाने के बारे में है।
फंक्शन घोषित करना और कॉल करना
एक फंक्शन कोड का एक नामित ब्लॉक है जिसे आप जब चाहें चला सकते हैं। आप चरणों को एक बार लिखते हैं, उन्हें एक नाम देते हैं, और फिर उस नाम से जितनी बार चाहें उन्हें चलाते हैं।
आप function कीवर्ड के साथ एक बनाते हैं:
function greet() {
console.log("Hi there");
}यह पूरी परिभाषा है, लेकिन अभी तक कुछ नहीं हुआ है। एक फंक्शन लिखने से चरण संग्रहीत होते हैं; यह उन्हें नहीं चलाता है। इसे वास्तव में चलाने के लिए, आप इसे अपने नाम के बाद कोष्ठक लिखकर कॉल करते हैं:
greet(); // Hi there
greet(); // Hi thereदो लाइनें, दो अभिनंदन, एक कोड ब्लॉक से। परिभाषित करना और कॉल करना अलग-अलग चीजें हैं, और उन्हें मिलाना पहली चीज है जो लोगों को परेशान करती है।
फंक्शन को एक स्पष्ट, क्रिया-जैसा नाम दें कि यह क्या करता है (greet, logDivider), वही देखभाल जो आप नामकरण चर करते समय लेते हैं। एक फंक्शन जिसे आप दस जगहों पर कॉल करते हैं केवल इसके नाम जितना पठनीय है।
greet()। यह विभाजन मुझे पहले भ्रमित करता था: परिभाषा नुस्खा है, कॉल वास्तव में खाना बना रहा है। आप एक ही फंक्शन को जितनी बार चाहें कॉल कर सकते हैं। पैरामीटर और रिटर्न वैल्यूज
एक फंक्शन तब अधिक उपयोगी होता है जब आप इसे कुछ दे सकते हैं। जिन वैल्यूज को आप देते हैं वे पैरामीटर होते हैं: नाम जो कोष्ठक में सूचीबद्ध होते हैं जो इसके लिए खड़े होते हैं जो आप इसे कॉल करते समय पास करते हैं।
function greet(name) {
console.log("Hi " + name);
}
greet("Sam"); // Hi Sam
greet("Priya"); // Hi Priyaname पैरामीटर है। जब आप greet("Sam") कॉल करते हैं, तो पाठ "Sam" उस रन के लिए name में स्लॉट करता है। एक फंक्शन, विभिन्न परिणाम, इस पर निर्भर करता है कि आप इसे क्या देते हैं।
अब तक ये फंक्शन कुछ प्रिंट करते हैं। अक्सर आप चाहते हैं कि एक फंक्शन एक वैल्यू वापस कर दे, ताकि आप इसे बाद में उपयोग कर सकें। यह वही है जो return करता है:
function double(number) {
return number * 2;
}
const result = double(5);
console.log(result); // 10return एक वैल्यू को फंक्शन से बाहर भेजता है। double(5) 10 बन जाता है, और आप इसे स्टोर कर सकते हैं, प्रिंट कर सकते हैं, या आगे पास कर सकते हैं। प्रिंटिंग स्क्रीन पर एक वैल्यू दिखाता है; रिटर्निंग इसे आपके कोड को वापस देता है ताकि आप इसे उपयोग करते रहें।
return एक वैल्यू को वापस देता है ताकि आपका कोड इसे बाद में उपयोग कर सके। console.log के साथ प्रिंटिंग इसे स्क्रीन पर दिखाता है; रिटर्निंग इसे आपको वापस देता है। मुझे यह अंतर महसूस करने में थोड़ा समय लगा। Arrow फंक्शन
एक फंक्शन लिखने का एक छोटा तरीका है, जिसे arrow फंक्शन कहा जाता है। आप इसे एक वेरिएबल में स्टोर करते हैं और function कीवर्ड के बजाय => arrow का उपयोग करते हैं:
const add = (a, b) => {
return a + b;
};
console.log(add(2, 3)); // 5जब फंक्शन इस तरह एक single expression है, तो आप braces और return को ड्रॉप कर सकते हैं और arrow को वैल्यू को आपके लिए वापस करने देते हैं:
const add = (a, b) => a + b;
console.log(add(2, 3)); // 5दोनों एक ही चीज करते हैं। आप modern JavaScript में हर जगह arrow फंक्शन देखेंगे, इसलिए आकार को पहचानना मदद करता है: एक नाम, एक =, inputs, एक arrow, और body।
function कीवर्ड के बजाय => के साथ एक वेरिएबल में स्टोर किया गया है। जब body एक expression है, तो आप braces और return को ड्रॉप कर सकते हैं और arrow आपके लिए वैल्यू को वापस देता है। आप इस आकार को लगातार देखेंगे, इसलिए इसे पढ़ने में comfortable हो जाना जल्दी payoff करता है। फंक्शन यहां से कहां जाते हैं
फंक्शन आप अपने आप को repeat करना बंद कर देते हैं: चरणों के एक ब्लॉक को नाम दें, इसे inputs दें, एक वैल्यू वापस पाएं। एक बार यह clicks, अधिकांश कोड जो आप लिखते हैं छोटे फंक्शन अन्य फंक्शन को कॉल करने हो जाते हैं, प्रत्येक एक स्पष्ट job करते हैं।
यहां से, फंक्शन हर जगह दिखते हैं। आप उन्हें array methods को पास करेंगे ताकि data की सूची को transform कर सकें, उन्हें conditionals से branching logic को organize करने के लिए उपयोग करेंगे, और variables के साथ शुरू किए गए naming discipline पर lean करेंगे। अगली बार जब आप अपने आप को कोड के एक ब्लॉक को कॉपी करते हुए पकड़ते हैं, तो यह एक फंक्शन में इसे wrap करने का signal है।

