如何传递函数参数作为switch语句大小写值?

时间:2019-10-08 19:35:43

标签: javascript function switch-statement

我正在测试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!".

预期:调用该函数应将log语句返回到控制台。

实际结果:控制台返回“ undefined”作为值。

3 个答案:

答案 0 :(得分:1)

您将变量gender设置为无内容"",因此case函数将看不到男性或女性,因此将不返回任何内容,或返回undefined

答案 1 :(得分:1)

通过在功能块内设置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");

答案 2 :(得分:0)

函数的第一条指令会影响gender参数的空字符串。因此,没有一种情况匹配。

顺便说一句,checkGender函数不返回任何内容。它仅执行console.log(如果开关的一种情况匹配)。其返回值将始终是不确定的。