Я следую за буткемпом веб-разработчика Colt Steele и занимаюсь им в упражнении Score Keeper, но я застрял в одной вещи, которую пока не совсем понимаю. Поэтому он установил для переменной gameOver значение false (var gameOver = false) и в операторе if он использовал if (! GameOver) {....}. Что значит! GameOver? Я знаю, что в данном случае это означает не ложь, так что если не ложь, то запустить код? Затем он устанавливает для gameOver значение true в вложенном операторе if, так что я знаю, когда gameOver устанавливает значение true, тогда все условие становится истинным, когда оператор достигает его, верно? Что позже означает, что код больше не будет работать, потому что он достиг "true"? Может кто-нибудь точно объяснить мне это более подробно? Я в замешательстве, особенно если учесть, что я впервые увидел отрицание имени переменной, которое было установлено равным булевому значению, особенно во время оператора if. Вот код:
var p1Button = document.querySelector("#p1");
var p2Button = document.getElementById("p2");
var p1Display = document.querySelector("#p1Display");
var p2Display = document.querySelector("#p2Display");
var p1Score = 0;
var p2Score = 0;
var gameOver = false;
var winningScore = 5;
p1Button.addEventListener("click", function(){
if (!gameOver) {
p1Score++;
if (p1Score === winningScore) {
gameOver = true;
}
p1Display.textContent = p1Score;
}
});
p2Button.addEventListener("click", function(){
if (!gameOver) {
p2Score++;
if (p2Score === winningScore) {
gameOver = true;
}
p2Display.textContent = p2Score;
}
});