2015-06-07 6 views
5

परिभाषित मैं एक जावास्क्रिप्ट में एक पैरामीटर के साथ एक समारोह में परिभाषित किया गया है, और मैं इसे पैरामीटर हो प्रारंभ करने में कैसे, किसी भी एक मेरी मदद पता नहीं है। कोड bellowजावास्क्रिप्ट समारोह में एक पैरामीटर को प्रारंभ करने के लिए कैसे जब मैं समारोह

<br/>Enter a number: 
<input type="text" id="txt1" name="text1"> 
<p>Click the button to see the result</p> 
<button onclick="myFunction(5)">show result</button> 
<br/> 
<p id="demo"></p> 
<script> 
    function myFunction(param) { 
    alert(param); 
    var z = param; 
    var y = document.getElementById("txt1").value; 
    var x = +y + +z; 
    document.getElementById("demo").innerHTML = x; 
    } 
</script> 

समस्या मैं है जो है: अगर मैं समारोह <button onclick="myFunction(5)">show result</button> के रूप में यह काम करता है के लिए एक तर्क भेजने के लिए, लेकिन यह काम नहीं कर रहा है, तो मैं किसी भी तर्क नहीं भेजते हैं और परिणाम NaN है। अब मैं जानना चाहता हूं कि मैं पैरामीटर वेन कैसे शुरू कर सकता हूं, मैं फ़ंक्शन को परिभाषित करता हूं? के रूप में हम जैसे

function myFunction(param) { 
    param = param || 0; 
    console.log(param); 
    var z = param; 
    var y = document.getElementById("txt1").value; 
    var x = +y + +z; 
    document.getElementById("demo").innerHTML = x; 
    } 

php function myFunction(param=0)

+0

के संभावित डुप्लिकेट [एक सेट एक JavaScript फ़ंक्शन के लिए डिफ़ॉल्ट पैरामीटर मान] (http://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a-javascript-function) –

उत्तर

5

उपयोग param = param || 0; में है ऊपर बयान param को param सेट कह रहा है अगर यह falsey (undefined, null, false) नहीं है, अन्यथा 0 पर सेट करें। जब भी आप एक पैरामीटर जावास्क्रिप्ट यह रूप में अपरिभाषित पर विचार करेंगे, तो आप इस मुद्दे के लाभ काटते कर सकते हैं और यह करने के लिए एक मूल्य को प्रारंभ नहीं है

function foo(a, b) 
{ 
    a = typeof a !== 'undefined' ? a : 42; 
    ... 
} 
2

आप इस तरह यह करना होगा जैसे:

function myFunction(param) 
    { 

     param = typeof param !== 'undefined' ? param : 0; 

    } 

आशा है कि यह उपयोगी होगा।

1

सभी जवाब अब तक निर्धारित करने के लिए अगर यह निर्धारित किया गया है या नहीं param का मूल्य की जाँच करें। ज्यादातर मामलों में ठीक काम करता है कि, लेकिन यह जिन मामलों में आप वास्तव में myFunction को undefined पास करना चाहते हैं कवर नहीं करता। विशेष रूप से अक्सर इस्तेमाल किया पैटर्न param = param || 0 सभी falsy मूल्यों (0, false, "", null, undefined) आप कार्य करने के लिए पारित करने के लिए 0 को param सेट हो जाएगा। तो अगर आप के रूप में अच्छी उन मामलों को कवर करने की जरूरत है और यदि आप अधिक से अधिक निकट अन्य भाषाओं के व्यवहार का अनुकरण करना चाहते हैं, तो आप arguments जांच करने की आवश्यकता है, तो param वास्तव में स्थापित किया गया था:

function myFunction(param) { 
    if (arguments.length === 0) { 
     param = 0; 
    } 
    console.log(param); 
} 

myFunction(0); //0 
myFunction(1); //1 
myFunction(""); //"" 
myFunction(null); //null 
myFunction(undefined); //undefined 
myFunction(false); //false 
myFunction(); //0 
+0

उत्कृष्ट basilikum। यह बहुत अच्छा काम करता है –

संबंधित मुद्दे