我正在用JavaScript测试switch语句,并希望将一个语句写入一个函数中以重复执行。
我一直在编写一个基本函数,该函数将“ male”或“ female”作为参数,并将一个或另一个记录到控制台:“它是男孩!”或“它是一个女孩!”。
function checkGender(gender){
gender = "";
switch (gender){
case "male":
console.log("it's a boy!");
// have also tried using a return statement.
break;
case "female":
console.log("it's a girl!");
break;
}
}
checkGender("male");
// => should return "it's a boy!".
预期:调用该函数应将日志语句返回到控制台。
实际结果:控制台返回“ undefined”作为值。
通过设置功能块内的gender
,将覆盖提供给功能的gender=''
值。基于新的gender
值(为空),不存在大小写,因此控制台中没有任何内容。不要重置提供给您的功能的gender
值,它将起作用:
function checkGender(gender) {
switch (gender) {
case "male":
console.log("it's a boy!");
// have also tried using a return statement.
break;
case "female":
console.log("it's a girl!");
break;
}
}
checkGender("male");
您将变量gender
设置为无""
,因此case函数将看不到男女,因此将不返回任何内容,或返回undefined
。
函数的第一条指令会影响gender
参数的空字符串。因此,所有情况都不匹配。
顺便说一下,checkGender
函数不返回任何内容。它仅执行console.log
(如果开关的一种情况匹配)。其返回值将始终是不确定的。