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

问题描述 投票:-1回答:3

我正在用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”作为值。

javascript function switch-statement
3个回答
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");

1
投票

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.