Javascript 未从if语句打开的警报

Javascript 未从if语句打开的警报,javascript,if-statement,alert,Javascript,If Statement,Alert,我正在制作一个石头剪子游戏,我想要警报来确定谁选了什么,谁赢了,但是警报不会弹出。我发现了多个错误并修复了它们,重新检查了所有内容,甚至进行了三次检查,但警报仍然不会弹出 这是三个功能之一(它们都相似): functionrock(){ var computerChoice=Math.random(); 如果(计算机选择

我正在制作一个石头剪子游戏,我想要警报来确定谁选了什么,谁赢了,但是警报不会弹出。我发现了多个错误并修复了它们,重新检查了所有内容,甚至进行了三次检查,但警报仍然不会弹出

这是三个功能之一(它们都相似):

functionrock(){
var computerChoice=Math.random();
如果(计算机选择<0.34){
computerChoice=“rock”;
}否则如果(计算机选择<0.67){
computerChoice=“纸张”;
}否则{
computerChoice=“剪刀”;
}
}
如果(计算机选择==“摇滚乐”){
警报(“链接和计算机都选择了摇滚!这是一个平局!”);
}else if(计算机选择==“剪刀”){
警告(“链接选择了石头,电脑选择了剪刀!电脑受到了伤害!”);
}否则{
警告(“链接选择了岩石,计算机选择了纸张!链接受到了伤害!”;
}
}

您不能返回警报。警报是一个方法调用。移除警报前面的回路,警报将打开:

if(computerChoice === "rock"){
    alert("Link and Computer both chose Rock! It's a Tie!");
}

你不需要退货。因此,改变这一点:

if(computerChoice === "rock"){
  return alert("Link and Computer both chose Rock! It's a Tie!");
}
为此:

if(computerChoice === "rock"){
  alert("Link and Computer both chose Rock! It's a Tie!");
}

我认为问题出在以下几行:

function rock() {
  var computerChoice = Math.random();
  if (computerChoice < 0.34) {
    computerChoice = "rock";
  } else if (computerChoice < 0.67) {
    computerChoice = "paper";
  } else {
    computerChoice = "scissors";
  }
} // <-- I don't think you want this closing brace here
if (computerChoice === "rock") {
   alert("Link and Computer both chose Rock! It's a Tie!");
} else if (computerChoice === "scissors") {
   alert("Link chose Rock and Computer chose Scissors! Computer took a heart of damage!");
} else {
   alert("Link chose Rock and Computer chose Paper! Link took a heart of damage!");
}
}

我多次运行这个函数。每次它都会随机向三条消息中的一条发出警报。

这种方法有效,并且可以少走弯路:)

澄清: Math.random()返回[0..1>范围内的浮点值
replements.length*Math.random()返回[0..3>范围内的浮点值

Math.floor(repress.length*Math.random())返回0、1或2。

在浏览器的Javascript控制台中设置断点。例如,对于Chrome,在Windows上使用F12打开它,或在OS X上使用alt-cmd-I打开它,转到“源”选项卡。找到函数的第一行,单击左边缘(行号所在位置)设置断点并触发您的函数。当我重新格式化代码时,这是因为代码中明显存在语法错误。最后还有一个额外的
}
。请务必检查您的错误控制台。感谢您提供的有用提示,我将不得不记住这一点。遗憾的是,我删除了return语句,但它仍然是错误的Don’不要给我警告信息。不过我很感谢你的帮助。我删除了你说的返回声明,但它仍然没有给我警告信息。不过我很感谢你的帮助。确实如此!我花时间阅读了你的全部回复,以确保我做得对,你的解释有点想让我自己面对现实。我应该我会仔细查看我输入的内容。谢谢你的帮助!
function rock() {
  var computerChoice = Math.random();
  if (computerChoice < 0.34) {
    computerChoice = "rock";
  } else if (computerChoice < 0.67) {
    computerChoice = "paper";
  } else {
    computerChoice = "scissors";
  }
} // <-- I don't think you want this closing brace here
if (computerChoice === "rock") {
   alert("Link and Computer both chose Rock! It's a Tie!");
} else if (computerChoice === "scissors") {
   alert("Link chose Rock and Computer chose Scissors! Computer took a heart of damage!");
} else {
   alert("Link chose Rock and Computer chose Paper! Link took a heart of damage!");
}
}
function rock() {
  var computerChoice = Math.random();
  if (computerChoice < 0.34) {
    computerChoice = "rock";
  } else if (computerChoice < 0.67) {
    computerChoice = "paper";
  } else {
    computerChoice = "scissors";
  }

  if (computerChoice === "rock") {
     alert("Link and Computer both chose Rock! It's a Tie!");
  } else if (computerChoice === "scissors") {
     alert("Link chose Rock and Computer chose Scissors! Computer took a heart of damage!");
  } else {
     alert("Link chose Rock and Computer chose Paper! Link took a heart of damage!");
  }
}
function rock() {
  var replies = new Array(
    'Link and Computer both chose Rock! It\'s a Tie!',
    'Link chose Rock and Computer chose Scissors! Computer took a heart of damage!',
    'Link chose Rock and Computer chose Paper! Link took a heart of damage!');
  alert(replies[Math.floor(replies.length * Math.random())]);
}