Как передать параметр функции в качестве значения регистра оператора switch? - PullRequest
0 голосов
/ 08 октября 2019

Я тестирую операторы switch в JavaScript и хочу записать их в функцию для повторного выполнения.

Я пишу базовую функцию, которая принимает в качестве параметров "мужской" или "женский", ирегистрирует один или другой на консоли: "это мальчик!"или «это девочка!», соответственно.

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 ]

1 голос
/ 08 октября 2019

Вы устанавливаете переменную gender в ничто "", поэтому функция case не будет видеть мужчину или женщину и, следовательно, ничего не будет возвращать, или undefined.

1 голос
/ 08 октября 2019

Вы переопределяете значение 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");
0 голосов
/ 08 октября 2019

Первая инструкция вашей функции влияет на пустую строку параметра gender. Таким образом, ни один из случаев не соответствует.

Кстати, функция checkGender ничего не возвращает. Он выполняет только console.log (если совпадает один случай переключения). Его возвращаемое значение всегда будет неопределенным.

...