Когда я запускаю программу, консоль выдает ошибку, что «воскресенье» (и «суббота» в зависимости от ввода пользователя) не существует. Я пробовал много комбинаций в операторе if со скобками, и ничего не получалось.
var day = prompt("Enter a day of the week.");
console.info("Day is: " + day);
//if user input is equal to Sunday OR user input is equal to Saturday,
if (getText(day) == "Sunday" || getText(day) == "Saturday") {
console.info("It's the weekend!");
} else {
console.info("Can't wait for the weekend to get here.");
}
Где ваша функция getText? Uncaught ReferenceError: getText не определен.
Задавая вопрос о коде, важно добавить тег для конкретного используемого языка. Пожалуйста, отредактируйте свой вопрос, чтобы мы могли попытаться помочь. Спасибо.
В JavaScript == проверяет равенство, но === проверяет точное соответствие, включая тип данных. Чаще всего используется ==. Если вы сравните целое число 1 со строкой, "1" == будет оценено как истинное.
@paddy: вы смешиваете его с другими языками; JS ===
/==
не является аналогом Python ==
/is
. ==
— равенство с принудительным типом, ===
— равенство со строгим типом. Любой из них будет работать здесь.
Вы должны удалить getText
, и он будет работать правильно:
var day = prompt('Enter a day of the week.');
console.info('Day is: ' + day);
if (day == 'Sunday' || day == 'Saturday') {
console.info("It's the weekend!");
} else {
console.info("Can't wait for the weekend to get here.");
}
Функция prompt()
всегда возвращает string
, если пользователь нажимает «ОК», или null
, если пользователь нажимает «Отмена». В вашем случае, если вы что-то введете и нажмете «ОК», day
будет строкой, которая может быть "Sunday"
или "Saturday"
.
Однако, если вы хотите рассматривать прописные и строчные буквы как равные, например, "sunday"
эквивалентно "Sunday"
, вы должны использовать метод toLowerCase()
или toUpperCase()
, чтобы убедиться, что обе строки либо все строчные, либо все прописные. Что-то вроде ниже:
var day = prompt("Enter a day of the week.");
console.info("Day is: " + day);
//if user input is equal to Sunday OR user input is equal to Saturday,
if (day.toLowerCase() == "sunday" || day.toLowerCase() == "saturday") {
console.info("It's the weekend!");
} else {
console.info("Can't wait for the weekend to get here.");
}
У вас отсутствует языковой тег. Это похоже на Javascript для меня. У меня такое ощущение, что равенство строк использует оператор
===
в Javascript, а не==
(который только проверяет, является ли это одним и тем же базовым объектом).