我定义函数时如何初始化javascript函数中的参数

时间:2015-06-07 10:31:43

标签: javascript parameters initialization arguments

我在javascript中定义了一个带参数的函数,我不知道如何初始化它的参数,任何人都帮帮我。代码如下:

<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。现在我想知道如何初始化参数我定义函数?正如我们在php function myFunction(param=0)

中所做的那样

4 个答案:

答案 0 :(得分:5)

使用param = param || 0;之类的

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;
  }

上述说法是将param设置为param,如果它不是假的(undefined, null, false),则将其设置为0

答案 1 :(得分:4)

每当你没有为参数初始化一个值时,javascript会认为它是未定义的,所以你可以从这个问题中获益,并且这样做:

function myFunction(param)
     {

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

     }

希望它有用。

答案 2 :(得分:2)

你必须这样做:

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

答案 3 :(得分:1)

到目前为止,所有答案都会检查param的值,以确定它是否已设置。在大多数情况下,它可以正常工作,但它并不涵盖您实际想要将undefined传递给myFunction的情况。特别是经常使用的模式param = param || 0会将param设置为0所有虚假值(0false"",{{1}你传递给函数的},null)。 因此,如果您还需要涵盖这些案例,并且如果您想尽可能地模拟其他语言的行为,则需要检查undefined是否实际设置arguments

param