我在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)
答案 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
所有虚假值(0
,false
,""
,{{1}你传递给函数的},null
)。
因此,如果您还需要涵盖这些案例,并且如果您想尽可能地模拟其他语言的行为,则需要检查undefined
是否实际设置arguments
:
param