在PHP中,如果未传递参数,我将函数设置为null。例如:
函数调用:
myExample(8);
功能定义:
function myExample($var1, $var2 = null);
预期结果:
$var 1 = 8;
$var 2 = null;
JavaScript中是否存在类似的语法?我试着直接做它并没有用。
答案 0 :(得分:4)
简而言之,没有。您不能在函数声明中指定默认值。
可是:
function myExample($var1, $var2) {
}
myExample(1);
将导致$var2
在函数内成为undefined
。
答案 1 :(得分:1)
在javascript中,您可以将任何数量的参数传递给函数,而无需声明它们。你可以使用类似数组的变量参数访问它们(它有一个长度属性,但实际上是一个对象)
你可以这样做:
function yourfunction (var1){
var var2 = null;
if (arguments.length>1){
var2 = arguments[1];
}
}
这与你在php中所做的非常相似,因为如果你没有传递第二个参数,var2为null,否则它等于第二个参数
查看here以获取完整参考资料
编辑一个典型的例子是一个函数,它对所有参数求和,无论它们的数量如何。我在几本关于javascript的书中找到了它。如果你想阅读更多一些好的boks:面向对象的javascript和javascript模式由stoyan stefanov和通常的Javascript:好的部分 function sumValues() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
答案 2 :(得分:1)
不,不。
要允许可选参数,只需指定它们即可。如果未提供它们,则将它们定义为未定义。
EG。
Func = function(arg, opt_arg) { Alert(arg + ' ' + opt_arg); } Func('test');// gives "test undefined"
参数不像php那样是强制性的。
你可以这么简单地
If(opt_arg != 'undefined)
检查用户是否提供了