可能的重复: 我如何使一个参数的默认值到一个javascript函数
在PHP中:
function func($a = 10, $b = 20){
// if func() is called with no arguments $a will be 10 and $ b will be 20
}
如何在JavaScript中做到这一点?
如果我试图在函数参数中赋值,就会得到一个错误
在形式参数之后
可能的重复: 我如何使一个参数的默认值到一个javascript函数
在PHP中:
function func($a = 10, $b = 20){
// if func() is called with no arguments $a will be 10 and $ b will be 20
}
如何在JavaScript中做到这一点?
如果我试图在函数参数中赋值,就会得到一个错误
在形式参数之后
当前回答
我从未在JavaScript中见过这样做。如果你想要一个带有可选形参的函数,如果省略形参就会得到默认值,这里有一种方法:
function(a, b) {
if (typeof a == "undefined") {
a = 10;
}
if (typeof b == "undefined") {
a = 20;
}
alert("a: " + a + " b: " + b);
}
其他回答
我从未在JavaScript中见过这样做。如果你想要一个带有可选形参的函数,如果省略形参就会得到默认值,这里有一种方法:
function(a, b) {
if (typeof a == "undefined") {
a = 10;
}
if (typeof b == "undefined") {
a = 20;
}
alert("a: " + a + " b: " + b);
}
不能为函数参数添加默认值。但是你可以这样做:
function tester(paramA, paramB){
if (typeof paramA == "undefined"){
paramA = defaultValue;
}
if (typeof paramB == "undefined"){
paramB = defaultValue;
}
}
在javascript中,你可以不带参数调用函数(即使它有参数)。
所以你可以像这样添加默认值:
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
//your code
}
然后你可以调用func();使用默认参数。
下面是一个测试:
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
alert("A: "+a+"\nB: "+b);
}
//testing
func();
func(80);
func(100,200);
function func(a, b)
{
if (typeof a == 'undefined')
a = 10;
if (typeof b == 'undefined')
b = 20;
// do what you want ... for example
alert(a + ',' + b);
}
在速记
function func(a, b)
{
a = (typeof a == 'undefined')?10:a;
b = (typeof b == 'undefined')?20:b;
// do what you want ... for example
alert(a + ',' + b);
}
你必须检查参数是否未定义:
function func(a, b) {
if (a === undefined) a = "default value";
if (b === undefined) b = "default value";
}
还要注意,这个问题以前已经回答过了。