JavaScript

Помогите с кодом Javascript

По фану пишу подобие игры прямо в браузере (в консоль страницы вставляю код и смотрю результат), и вот строчка:

var day = prompt('У вас сегодня был хороший день?');
if (day = Да) then
alert('Рад за тебя.');

После написания ответа вылетает. Что-то явно не так во второй строчке, но я не могу понять, что именно. Помогите!
Макс Усков
Макс Усков
440
Переменная Да не определена, поэтому попытка присваивания ее значения переменной day вызывает ошибку выполнения.
Дмитрий Холявко
Дмитрий Холявко
65 667
Лучший ответ
Макс Усков Объясни, пожалуйста!
Макс Усков Я имею ввиду как нужно написать, чтобы все работало.
Макс Усков Спасибо вам обоим.
1. Почему при написании prompt у тебя текст заключен в кавычки, а в условии if (day = Да) нет? Кавычек не хватило?
2. А так же почему у тебя перепутаны операции присваивания и сравнения?
3. Что это еще за then?

Интерпретатор JavaScript справедливо ругается.

ОШИБКА 1: не имею понятия о некой переменной с именем "Да".
РЕШЕНИЕ: чтобы не вводить себя и меня в заблуждение, сделай следующее:
Либо объяви переменную с именем "Да" или заключи Да в кавычки, чтобы это стало строкой.

ОШИБКА 2: я вроде думал, что ты хочешь провести операцию сравнения в условии if (day = Да), а то, что ты пишешь является операцией присваивания.
РЕШЕНИЕ: в условиях допускается операция сравнения, в свою очередь это ДВА знака равно, ну или ТРИ (подробнее можешь почитать на learn.javascript.ru).

ОШИБКА 3: я понятия не имею ничего о каком-то там "then", ты прямиком с паскаля слез?
РЕШЕНИЕ: переходи обратно на паскаль, либо запомни, что в JavaScript блок кода заключается в скобки { и }. Соответственно правильным способом написания условий будет:

if (day == "Да") return true - для действий, которые могут войти в одну строку.
if (day == "Да") {
// Много-много строк кода.
}
Юрий Ермолаев
Юрий Ермолаев
54 419
Эх... ну ладно. javascript в данном случае воспринимает да как переменную. Чтобы такого не происходило нужно написать "да". Данные в кавычках считаются за строки. Кстати, на всякий случай прочитай про конкатенацию. 1+1 = 2 НО "1"+1 = 11. Также не вижу смысла в then.
Правильный код:
let day = prompt('У вас сегодня был хороший день?')
if (day == "Да"){
alert('Рад за тебя.')
}

Кстати: = - это знак присваивания. Знаки сравнения это == и ===.
Саша Калмыков
Саша Калмыков
1 093
Александр Байда = и then — работали бы в паскале))