js中不能像其他语言一样传递默认参数,如果这样书写:
function foo(x=2,y=3){
alert(x+y);
}
则会报错,那么应该怎么使用默认的参数呢?
1. 参数较少的情况下
function demo(x,y,z){
x = x || 5;
y = y || 6;
z = z || 7;
return x+y+z;
}
这种方式简单,但是当 x的值为 undefined 或者 null 或者 0 或 0.0 或者 false 或 ‘’ 或 NaN时将不准确
2. 参数较多的情况下,使用对象进行参数传递
function demo(setting){
// 内部定义一个包含所有参数的对象
var defaultSetting = {
x : 5,
y : 10,
z : 20
};
// 使用arguments进行重复即可
for(var i in setting){
defaultSetting[i] = setting[i];
}
console.log(defaultSetting);
}