【问题标题】:Javascript if statement doesnt work booleanJavascript if 语句不起作用布尔值
【发布时间】:2018-11-24 17:56:41
【问题描述】:

你好 ,我正在制作一个石头剪刀布游戏来锻炼 javascript。但我不明白为什么这段代码不起作用。如果我激活函数 start 则 var begin 应该为真,但是当我,例如,激活函数 rock 时,它不会在控制台中显示 rock。 有人可以帮我吗?

【问题讨论】:

  • 请将文本形式的代码添加到问题中。
  • 你是吊装的受害者
  • 请在您的问题中包含您的代码(如果可能,作为有效的 sn-p)而不是您的代码图像。
  • var begin = true;中删除var关键字
  • 很高兴您看到了问题(无关的“var begin”):) 以后,请复制/粘贴您的文本(而不是屏幕截图)。更好的是,考虑使用“code sn-ps”。另请阅读 Javascript hoisting 和 ES6 关键字 let

标签: javascript if-statement boolean


【解决方案1】:

通过在 start 函数中添加 var,您声明了另一个局部变量 start

将启动功能替换为

function start(){
    begin = true;
    console.log("start");
    document.getElementById("player").id = "current";
}

【讨论】:

    【解决方案2】:

    start() 函数中使用var begin,您可以声明一个新的局部变量。如果将其设置为true,则同名的外部变量不会受到影响。要设置外部变量,请不要声明变量而只需设置它:

     begin = true;
    

    【讨论】:

      【解决方案3】:

      您只在 start 函数的范围内将 begin 设置为 true。如果您将开始代码更改为begin = true,它应该可以工作。

      当您在 start 函数中声明 var begin 时,该变量的作用域是该函数。当您在其他函数中访问 begin 时,您正在访问从未从 false 更改过的全局 begin

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-16
        • 1970-01-01
        • 2015-09-06
        • 2021-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-17
        相关资源
        最近更新 更多