#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))