जावास्क्रिप्ट फ़ंक्शन पैरामीटर्स
एक जावास्क्रिप्ट function
पैरामीटर मानों (तर्कों) पर कोई जाँच नहीं करता है।
फ़ंक्शन पैरामीटर और तर्क
इससे पहले इस ट्यूटोरियल में, आपने सीखा कि फंक्शन के पैरामीटर हो सकते हैं :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
फ़ंक्शन पैरामीटर फ़ंक्शन परिभाषा में सूचीबद्ध नाम हैं ।
फ़ंक्शन तर्क फ़ंक्शन को दिए गए (और प्राप्त किए गए) वास्तविक मान हैं।
पैरामीटर नियम
JavaScript फ़ंक्शन परिभाषाएं पैरामीटर के लिए डेटा प्रकार निर्दिष्ट नहीं करती हैं।
जावास्क्रिप्ट फ़ंक्शन पारित तर्कों पर टाइप जाँच नहीं करते हैं।
जावास्क्रिप्ट फ़ंक्शन प्राप्त तर्कों की संख्या की जाँच नहीं करते हैं।
डिफ़ॉल्ट पैरामीटर
यदि किसी फ़ंक्शन को लापता तर्कों (घोषित से कम) के साथ बुलाया जाता है, तो लापता मान पर सेट होते हैं
undefined
।
कभी-कभी यह स्वीकार्य होता है, लेकिन कभी-कभी पैरामीटर के लिए डिफ़ॉल्ट मान निर्दिष्ट करना बेहतर होता है:
उदाहरण
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ईसीएमएस्क्रिप्ट 2015 फ़ंक्शन घोषणा में डिफ़ॉल्ट पैरामीटर मानों की अनुमति देता है:
function myFunction(x, y = 2) {
// function code
}
तर्क वस्तु
जावास्क्रिप्ट फ़ंक्शंस में एक अंतर्निहित ऑब्जेक्ट होता है जिसे तर्क ऑब्जेक्ट कहा जाता है।
तर्क वस्तु में तर्कों की एक सरणी होती है जिसका उपयोग तब किया जाता था जब फ़ंक्शन को कॉल किया जाता था (आह्वान)।
इस तरह आप संख्याओं की सूची में उच्चतम मान (उदाहरण के लिए) खोजने के लिए बस एक फ़ंक्शन का उपयोग कर सकते हैं:
उदाहरण
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
या सभी इनपुट मानों को योग करने के लिए एक फ़ंक्शन बनाएं:
उदाहरण
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
यदि किसी फ़ंक्शन को बहुत अधिक तर्कों (घोषित से अधिक) के साथ बुलाया जाता है, तो इन तर्कों को तर्क ऑब्जेक्ट का उपयोग करके पहुँचा जा सकता है ।
तर्क मूल्य द्वारा पारित किए जाते हैं
फ़ंक्शन कॉल में पैरामीटर, फ़ंक्शन के तर्क हैं।
जावास्क्रिप्ट तर्क मूल्य द्वारा पारित किए जाते हैं : फ़ंक्शन केवल मानों को जानता है, तर्क के स्थान नहीं।
यदि कोई फ़ंक्शन किसी तर्क के मान को बदलता है, तो यह पैरामीटर के मूल मान को नहीं बदलता है।
तर्कों में परिवर्तन फ़ंक्शन के बाहर दृश्यमान (प्रतिबिंबित) नहीं होते हैं।
वस्तुओं को संदर्भ द्वारा पारित किया जाता है
जावास्क्रिप्ट में, वस्तु संदर्भ मूल्य हैं।
इस वजह से, ऑब्जेक्ट व्यवहार करेंगे जैसे वे संदर्भ द्वारा पारित किए गए हैं:
यदि कोई फ़ंक्शन किसी ऑब्जेक्ट प्रॉपर्टी को बदलता है, तो यह मूल मान को बदल देता है।
ऑब्जेक्ट गुणों में परिवर्तन फ़ंक्शन के बाहर दृश्यमान (प्रतिबिंबित) होते हैं।