为函数接受2个参数且只提供一个参数时设置默认参数-Javascript

为函数接受2个参数且只提供一个参数时设置默认参数-Javascript,javascript,if-statement,arguments,Javascript,If Statement,Arguments,我试图创建一些if语句,以便在第一个或第二个可选参数未定义时捕获 但当只输入一个参数时,它仍然将该参数值赋给第一个参数。即 功能犬繁殖者(姓名、年龄){ 如果(名称===未定义){ name=“史蒂夫”; } 如果(年龄===未定义){ 年龄=0; } 让newObject={}; newObject.name=名称; newObject.age=年龄; 返回newObject; } 控制台日志(狗繁殖器(23))传递一个对象可能比传递多个单独的参数更容易-然后,您可以使用默认属性值: 函数

我试图创建一些if语句,以便在第一个或第二个可选参数未定义时捕获

但当只输入一个参数时,它仍然将该参数值赋给第一个参数。即

功能犬繁殖者(姓名、年龄){
如果(名称===未定义){
name=“史蒂夫”;
}
如果(年龄===未定义){
年龄=0;
}
让newObject={};
newObject.name=名称;
newObject.age=年龄;
返回newObject;
}

控制台日志(狗繁殖器(23))传递一个对象可能比传递多个单独的参数更容易-然后,您可以使用默认属性值:

函数dogbreader({name='Steve',age=0}){
const newObject={name,age};
//如果需要,在此处操作newObject
返回newObject;
}

console.log(狗繁殖者({age:23}))但是,当用户输入姓名和年龄时,该怎么办?或者,如果需要,我会在这里操作
newObject
:)如果他们输入名称和年龄,则不应指定任何默认值,但这不会导致任何问题-然后,仅从传递的每个对象的属性创建对象。谢谢-第二种方法可以正确处理此特定的编码挑战。然而,当用户进入
console.log(dogbreader(“Jackie”,26))时,我仍然无法找到第一种工作方式。它仍然在为name和age(?)指定默认值,您应该传递一个对象,而不是单个参数<代码>{name:'Jackie',年龄:26}
,它更容易阅读和解析好吧,我明白你的意思。对于这个特殊的挑战,随机参数确实会被传入,因此使用rest参数和
.find()
具有正确类型的参数可能更有意义。