需要有关布尔值的帮助

时间:2018-08-25 15:11:07

标签: boolean

我紧随Colt Steele的网络开发人员训练营之后,又参加了Score Keeper演习,但是我只停留在我还不了解的一件事上。因此,他将gameOver的变量设置为false(var gameOver = false),并在if语句中使用了if(!gameOver){....}。 !gameOver到底是什么意思?我知道在这种情况下这意味着不为假,所以如果不为假,则运行代码?然后,他在嵌套的if语句中将gameOver设置为true,所以我知道当gameOver设置为true时,如果if语句正确,整个条件变为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;
    }
});

1 个答案:

答案 0 :(得分:0)

if (!gameOver)的缩写:

if (gameOver != true) {} // (gameOver is not true)

那么会发生什么: 当您单击按钮时,它会增加分数。 当分数与获胜分数(p1Score === winningScore)相同时 然后将gameOver设置为true,游戏结束。

他使用===是因为:p1Score must be exact the same as winningScore。 这是因为10也是布尔值。因此,这可能会带来一些异常的结果