对于以下代码,我不断将Scissors取回alert。我不确定我在做什么错。

var computerChoice = Math.random();

var newChoice = function (computerChoice) {
    if (computerChoice <= 0.34) {
        var newChoice = "rock";
        return newChoice;
    } else if ((computerChoice >= 0.35) && (computerChoice <= 0.66)) {
        var newChoice = "paper";
        return newChoice;
    } else {
        var newChoice = "scissors";
        return newChoice;
    }

}
var newerChoice = newChoice();
alert(newerChoice);

最佳答案

调用时没有将参数传递给newChoice,因此参数 computerChoice的值为undefinedundefined <= 0.34false,其他比较相同。

两种可能的解决方案是:

  • 从函数中删除参数,以便computerChoice引用全局变量。当前,参数用相同的名称遮盖外部变量。
  • (更好)使用参数调用该函数。


  • Learn more about functions

    关于javascript - JavaScript Return和if/else,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29518409/

    10-09 19:21