Здравствуйте! Подскажите, пожалуйста, мы в условии в операторе if пишем просто имя переменной, то есть она переводится в булевый тип, но изначально она является объектом, правильно? То есть изначально эта переменная равна true (так как false только “пустые” значения, а объекты всегда true), а как тогда значение переменной “обнуляется”? в какой момент оно становится false?
Здравствуйте Oxana, не совсем все так.
Смотри,есть if это вопрос (если) и по сути он сам является булевым типом. Так же есть переменная скажем x= 5, и это объект. Данный объект не является булевым типом, так как не отвечает поставленому вопросу True или False, но отвечает на вопрос целочисленный. Таким образом х=5 - это тип int и сам по себе if его изменить не может, но это может сделать последующее условие.
Значение if принимает лишь тогда, когда задается вопрос х равен 5?
Спасибо, но тогда у меня возникает такой вопрос: зачем мы вообще используем это условие в данной ситуации? Мы присвоили переменной control “непустое” значение, соответственно, условие if всегда будет исполнятся. Почему мы не можем написать:
var control = document.querySelector(‘button.walden’);
control.classList.add(‘active’);
var photo = document.querySelector(’.photo’);
photo.classList.add(‘walden’);
Или если обратиться к Вашему примеру, почему мы не можем написать:
let x = 5;
x + 3;
зачем писать:
let x = 5;
if(x) {x + 3};
Я думала, что if используется, если есть какая-то альтернатива, а какая альтернатива здесь?
Конечно же все зависит от ситуации, уточните ситуацию и я постараюсь ответить вам, зачем он там использовался. Так же я забыл уточнить еще одну вещь:
Оператор if способен преобразовывать типы, то есть для него 1 всегда равен True, а 0 всегда равен Folse, к примеру:
If (1) { x + 1};
при данном условии каждый раз к иксу будет прибавляется единица.