Подсказка не сохраняет значение в виде строки

#javascript #string #prompt

#javascript #строка #подсказка

Вопрос:

Я работаю над упражнением, но я не могу понять, почему мое приглашение не сохраняется в виде строки и, следовательно, не может быть сравнено с моим случаем переключения

Любой ввод возвращает false:

 function getColor(selection) {
  switch (selection) {
    case 'red':
      return true;
    case 'green':
      return true;
    case 'blue':
      return true;
    default:
      return false; //returns false because the user picked an unavailable color
  }
}

var colorname = prompt('What color do you want?');
var isAvailable = getColor(colorname);

if (getColor === true) {
  console.log('Good news! That color is available');
} else {
  console.log('We are sorry, that color is not available');
} 

Я заметил, что входные данные не сохраняются в виде строки, когда я попытался .toUpperCase использовать переменную «colorname», и она не изменится на верхний регистр.

Комментарии:

1. Строки неизменяемы . Вы не можете изменить существующую строку, но можете назначить новую строку той же или другой переменной.

2. У вас есть if (getColor === true) . Вы имели if (isAvailable === true) в виду вместо этого?

Ответ №1:

Вы сохраняете результат getColor(colorname) в isAvailable переменной, а позже вместо использования этой переменной вы снова сравниваете имя функции.

измените значение if с if (getColor === true) на if (isAvailable) или if (isAvailable === true)

или один из этих:

 if(getColor(colorname) === true)

if(getColor(colorname))