मैंने अब यह निर्धारित करने के लिए 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
।