对于以下代码,我继续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);
答案 0 :(得分:2)
当您调用参数时,您没有将参数传递给newChoice
,因此参数 computerChoice
的值为undefined
。 undefined <= 0.34
为false
,与其他比较相同。
两种可能的解决方案是:
computerChoice
引用全局变量。目前参数 shadows 具有相同名称的外部变量。答案 1 :(得分:1)
newChoice方法的computerChoice
参数为undefined
,因为调用newChoice()
中没有传递任何内容。
如果您想传递先前生成的数字,可以按以下方式执行:
var computerChoice = Math.random();
var newChoice = function(computerChoice) {
if (computerChoice <= 0.34) {
return "rock";
} else if ((computerChoice >= 0.35) && (computerChoice <= 0.66)) {
return "paper";
} else {
return "scissors";
}
}
var newerChoice = newChoice(computerChoice);
alert(newerChoice);
&#13;
答案 2 :(得分:1)
对变量和参数似乎有点混淆。这是一些有效的代码...
var newChoice = function (choice) {
if (choice <= 0.34) {
return "rock";
} else if (choice <= 0.66) {
return "paper";
} else {
return "scissors";
}
};
var computerChoice = Math.random();
var newerChoice = newChoice(computerChoice);
alert(newerChoice);
传递给newChoice
的值是参数choice
。我删除了&&
,因为它们不是必需的。如果选择不是&lt; = 0.34那么它必须大于0.34,因此以后不需要检查。
computerChoice
是一个随机值变量,作为参数传递给函数。
这是一个工作小提琴的例子......
答案 3 :(得分:0)
尽管将其声明为参数,但您实际上并未将computerChoice
作为变量传递给函数。而不是var newerChoice = newChoice();
做var newerChoice = newChoice(computerChoice);
。我认为该函数将查找computerChoice作为参数,而不是查看之前的声明。在javascript中查找变量范围。
答案 4 :(得分:0)
您的newChoice
函数需要一个参数。因此你需要给它一个
var newerChoice = newChoice(computerChoice);
另外,我相信在第一个if语句中,你想要newChoice = "rock";
,而不是computerChoice = "rock";
答案 5 :(得分:-1)
var newerChoice = newChoice(Math.random());
答案 6 :(得分:-1)
好好看看这一行:
var newChoice = function (computerChoice) {
您创建了一个名为newChoice
的函数,并且需要一个名为computerChoice
的参数。现在让我们看看你以后如何执行该功能。
var newerChoice = newChoice();
您执行函数newChoice
,但这次没有将computerChoice
作为参数传递。
解决方案
你可以做的很容易。更改以下内容:
var newChoice = function (computerChoice) {
向
var newChoice = function () {
并通过向您的函数添加newChoice
,使computerChoice
函数为computerChoice = Math.random();
生成新值。像这样:
var computerChoice = Math.random();
var newChoice = function () {
computerChoice = Math.random();
if (computerChoice <= 0.34) {
var computerChoice = "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);
&#13;