2015-06-07 54 views
5

我有一个定义的函数在JavaScript中的参数,我不知道如何初始化它的参数,任何人都可以帮助我。代码是波纹管如何在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

的可能重复的[设置一一个JavaScript函数的默认参数值](http://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a-javascript-function) –

回答

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

上面的语句是说设置paramparam如果不是falsey (undefined, null, false),否则将其设置为0

2

你必须做这样的:

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

,只要你不值初始化JavaScript就认为它是不确定的,这样你就可以收获这个问题的利益,做一个参数像:

function myFunction(param) 
    { 

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

    } 

希望它会有用。

1

到目前为止的所有答案请检查param的值以确定它是否已设置。在大多数情况下,这种方式可以正常工作,但不包括您实际想要通过undefinedmyFunction的情况。尤其是经常使用的模式param = param || 0将设置param0为你传递给函数的所有falsy值(0false""nullundefined)。 所以,如果你需要覆盖的情况下,以及,如果你想模仿尽可能接近其他语言的行为,您需要检查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。它的效果很好 –

相关问题