Javascript 有人能解释一下我的错误在哪里吗?

Javascript 有人能解释一下我的错误在哪里吗?,javascript,Javascript,我真的很困惑,因为我没有错误,但我看不出我的代码中哪一位产生了这样的结果: rock scissors "scissors wins" 我已经做了一个console.log来查看结果,所以我知道这是错误的部分,但我现在记不起代码中的位置了 代码是: var userChoice = prompt("Do you choose rock, paper or scissors?"); var computerChoice = Math.random(); if (computerChoice &l

我真的很困惑,因为我没有错误,但我看不出我的代码中哪一位产生了这样的结果:

rock
scissors
"scissors wins"
我已经做了一个console.log来查看结果,所以我知道这是错误的部分,但我现在记不起代码中的位置了

代码是:

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if(computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
}

console.log(userChoice);
console.log(computerChoice);

var compare = function(choice1,choice2) {

  if (choice1 === choice2) {
    return "The result is a tie!";
  }

  if (choice1 === "paper"); 
  {
    if (choice2 === "rock")
    {
      return "paper wins";
    }
    else (choice2 === "scissors")
    {
      return "scissors wins";
    }
  }

  if (choice1 === "scissors");
  {
    if (choice2 === "rock")
    {
      return "rock wins";
    }
    else (choice2 === "paper")
    {
     return "scissors wins";
    }
  }

  if (choice1 === "rock");
  {
    if (choice2 === "scissors")
    {
      return "rock wins";
    }
    else (choice2 === "paper")
    {
      return "paper wins";
    }
  }
};


compare(userChoice,computerChoice);
var userChoice=prompt(“您选择石头、布还是剪刀?”);
var computerChoice=Math.random();
如果(计算机选择<0.34){
computerChoice=“rock”;

}else if(computerChoiceif's不需要分号,您已经在多个地方这样做了

if (choice1 === "paper"); // <--

if(choice1==“paper”);//if不需要分号,您已经在多个地方这样做了

if (choice1 === "paper"); // <--

if(choice1==“paper”);//你把
放在你的
后面,如果
s,你不应该这样做

如果放置一个
,则
的作用域在条件之后结束,剩余的代码在条件之后执行,就像它只是一个作用域定义一样

if (choice1 === "paper");
应该是

if (choice1 === "paper")

你把
放在你的
后面,如果
s,你不应该这样做

如果放置一个
,则
的作用域在条件之后结束,剩余的代码在条件之后执行,就像它只是一个作用域定义一样

if (choice1 === "paper");
应该是

if (choice1 === "paper")
由于分号的原因,始终输入下一个块

{
    if (choice2 === "rock")
    {
        return "paper wins";
    }
这里有
else
而不是
else if
,因此它忽略条件并返回“剪刀赢”

由于分号的原因,始终输入下一个块

{
    if (choice2 === "rock")
    {
        return "paper wins";
    }
这里有
else
而不是
else if
,因此它忽略条件并返回“剪刀赢”


if(choice1==“paper”);
你对
0.34
0.67
的逻辑是什么?这不是随机的。@user2191572你应该将其作为答案提交,这样你就可以获得学分。
Math.floor(Math.random()*3)+1
您可以使用此代码获得介于1和3之间的随机数,以确定您的
if
@sb的具体条件谢谢!我已经有高级用户向我发起了一场争吵,因为他们觉得这样的问题应该关闭而不是回答,所以我仍在学习何时可以安全地发布简单答案lol,但我始终喜欢to帮助人们解决
if(choice1==“paper”);
你对
0.34
0.67
的逻辑是什么?这不是随机的。@user2191572你应该将其作为答案提交,这样你就可以获得学分。
Math.floor(Math.random()*3)+1
您可以使用此代码获得介于1和3之间的随机数,以确定您的
if
@sb的具体条件谢谢!我已经有高级用户向我发起了一场争吵,因为他们觉得这样的问题应该关闭而不是回答,所以我仍在学习何时可以安全地发布简单答案lol,但我始终喜欢to帮助人们摆脱困境