почему существует это противоречие в этой строке кода с инструкцией IF?

#javascript

#javascript

Вопрос:

Здесь я не понимаю, почему противоречие выполняется условием по умолчанию в инструкции awaitingNextValue = false; , поскольку значение if равно awaitingNextValue === true ?

Блокирует ли это ложное утверждение условие после выполнения if ?

 if (awaitingNextValue) {
    calculatorDisplay.textContent = number;
    awaitingNextValue = false;
} else {
 

Полный код

 const calculatorDisplay = document.querySelector('h1');
const inputBtns = document.querySelectorAll('button');
const clearBtn = document.getElementById('clear');



let firstValue = 0;
let operatorValue = '';
let awaitingSecondValue = false;




function sendNumberValue(onDisplayNumber) {
  if (awaitingSecondValue === true) {
    calculatorDisplay.textContent = onDisplayNumber;
    awaitingSecondValue = false;
  } else {
    //if on display = 0 then add numubr Else add another number to the number on dislpay that is not 0 
    const onDisplayValue = calculatorDisplay.textContent
    calculatorDisplay.textContent = onDisplayValue === '0' ? onDisplayNumber : onDisplayValue   onDisplayNumber;
  }
} 

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

1. Итак, вам интересно, почему он переключает if с true на false?? Вероятно, поэтому при следующем запуске он переходит в else. Трудно сказать, не видя всего кода.

2. Здесь нет противоречия. Если вы водите машину или ездите на мотоцикле, вы делаете это каждый день: ЕСЛИ ДВИГАТЕЛЬ АВТОМОБИЛЯ ВЫКЛЮЧЕН {ВКЛЮЧИТЕ ДВИГАТЕЛЬ АВТОМОБИЛЯ }. Вы делаете эту проверку мысленно каждый день — вы не включаете движок, если он уже включен. Если нет никакого противоречия для вас, чтобы включить двигатель вашего автомобиля, почему должно быть противоречие, чтобы прекратить ждать следующего значения, когда вы нашли следующее значение?

Ответ №1:

Вам нужно сохранять состояние при программировании. Один из способов — использовать логическое значение для хранения состояния. Примером может служить, если функция активна, и вы хотите включить ее или отключить.

 var btn = document.querySelector("button");

var state = false;
btn.addEventListener("click", function () {
  if (state) {
    console.log("turn off");
    state = false;
  } else {
    console.log("turn on");
    state = true;
  }
  document.body.classList.toggle("active", state);
}); 
 .active {
  background-color: yellow;
} 
 <button>toggle</button>