मैंने अब यह निर्धारित करने के लिए 2 तरीके देखे हैं कि क्या एक जावास्क्रिप्ट फ़ंक्शन को एक तर्क दिया गया है। मैं सोच रहा था कि क्या एक विधि दूसरे से बेहतर है या यदि एक का उपयोग करना बुरा है?
function Test(argument1, argument2) {
if (Test.arguments.length == 1) argument2 = 'blah';
alert(argument2);
}
Test('test');
या
function Test(argument1, argument2) {
argument2 = argument2 || 'blah';
alert(argument2);
}
Test('test');
जहाँ तक मैं बता सकता हूँ, वे दोनों एक ही चीज़ में परिणत होते हैं, लेकिन मैंने उत्पादन में पहले एक का ही उपयोग किया है।
टॉम द्वारा उल्लिखित एक अन्य विकल्प :
function Test(argument1, argument2) {
if(argument2 === null) {
argument2 = 'blah';
}
alert(argument2);
}
जुआन की टिप्पणी के अनुसार, टॉम के सुझाव को बदलना बेहतर होगा:
function Test(argument1, argument2) {
if(argument2 === undefined) {
argument2 = 'blah';
}
alert(argument2);
}
argument2 || 'blah';'blah' में परिणाम होगा अगर argument2है false, बस नहीं करता है, तो यह अनिर्धारित रहता है (!)। यदि argument2एक बूलियन है, और इसके लिए फ़ंक्शन पारित हो falseगया है, तो वह रेखा argument2ठीक से परिभाषित होने के बावजूद 'ब्लाह' लौटेगी ।
argument2है 0, ''या null।