简体   繁体   English

此JavaScript If语句有什么问题?

[英]What's wrong with this JavaScript If statement?

I'm trying to build a basic Rock, Paper and Scissors game, can anyone give me a hint as to why this if statement is being rejected. 我正在尝试构建一个基本的Rock,Paper和Scissors游戏,任何人都可以向我提示为什么if语句被拒绝。

var rps = function(input1, input2){
    if (input1="paper" && input2="rock") {
        console.log("Player 1 wins!");
    };
};

The equality sign should be == instead of = 等号应为==而不是=

var rps = function(input1, input2){
    if (input1=="paper" && input2=="rock") {
        console.log("Player 1 wins!");
    }
};

First of all, comparison is done using == not = 首先,使用== not =完成比较

Second of all, remove the semicolon at the end of if. 第二,在if末尾删除分号。

  1. If you want to check ifa variable is equal to a value, you have to use "==" 如果要检查变量是否等于值,则必须使用“ ==“
  2. name your function! 命名您的功能!
  3. if-statement doesen't need a semicolon! if语句不需要分号!

    function rsp(input1, input2){ if (input1=="paper" && input2=="rock") { alert("Player 1 wins!"); 函数rsp(input1,input2){如果(input1 ==“ paper” && input2 ==“ rock”){alert(“播放器1获胜!”); } }; };

You're assigning not evaluating. 您正在分配不评估。 This should make a fun Paper, Rock, Scissors Game: 这应该使纸,石头,剪刀游戏变得有趣:

var prsStatements = {
  paperBeatsRock: 'Paper Beats Rock',
  rockBeatsScissors: 'Rock Beats Scissors',
  scissorsBeatsPaper: 'Scissors Beats Paper',
  seperator: ' - ',
  player1wins: 'Player One Wins!',
  player2wins: 'Player Two Wins!',
  tie: "It's a Tie!"
}
function prs(in1, in2){
  var p = /^paper$/i, r = /^rock$/i, s = /^scissors$/i, in2r = new RegExp(in2, 'i'), prss = prsStatements, sep = prss.seperator;
  if(in1.match(p) && in2.match(r)){
    return prss.paperBeatsRock+sep+prss.player1wins;
  }
  else if(in2.match(p) && in1.match(r)){
    return prss.paperBeatsRock+sep+prss.player2wins;
  }
  else if(in1.match(r) && in2.match(s)){
    return prss.rockBeatsScissors+sep+prss.player1wins;
  }
  else if(in2.match(r) && in1.match(s)){
    return prss.rockBeatsScissors+sep+prss.player2wins;
  }
  else if(in1.match(s) && in2.match(p)){
    return prss.scissorsBeatsPaper+sep+prss.player1wins;
  }
  else if(in2.match(s) && in1.match(p)){
    return prss.scissorsBeatsPaper+sep+prss.player2wins;
  }
  else if(in1.match(in2r)){
    return prss.tie;
  }
}

Now you don't have to worry about case sensitive issues, and your output can be changed! 现在,您不必担心区分大小写的问题,并且可以更改输出!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM