Javascript 为什么我没有从这个石头剪刀游戏中得到任何结果?

Javascript 为什么我没有从这个石头剪刀游戏中得到任何结果?,javascript,Javascript,尝试在JS中构建一个简单的游戏剪刀、石头、布,但不知道我在这里做错了什么。在提示符中输入并选择例如纸张之后,代码中没有任何反应。有人能用一种非常教育性的方式给我解释一下吗?我错过了什么 var Number = Math.random() Number = Number * 10; Number = Math.round(Number); var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0; console.log (Number)

尝试在JS中构建一个简单的游戏剪刀、石头、布,但不知道我在这里做错了什么。在提示符中输入并选择例如纸张之后,代码中没有任何反应。有人能用一种非常教育性的方式给我解释一下吗?我错过了什么

var Number = Math.random()
Number = Number * 10;
Number = Math.round(Number);
var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0;

console.log (Number);

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase;

if (Number == 0) {
    Number = "scissors";
} if (Number == 1){
    Number = "stone";
} if (Number == 2){
    Number = "paper";
}

if (Number == userInput ){
    alert("TIE");
}   else if (Number == "scissors" && userInput == "paper"){
    alert("Scissors Win's");
}   else if (Number == "scissors" && userInput == "stone"){
    alert("Stone Win's");
}   else if (Number == "paper" && userInput == "scissors"){
    alert("Scissors Win's");
}   else if (Number == "paper" && userInput == "stone"){
    alert("Paper Win's");
}   else if (Number == "stone" && userInput == "scissors"){
    alert("Stone Win's");
}   else if (Number == "stone" && userInput == "paper"){
    alert("Paper Win's");
} 

第8行有错误

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase;
把那行改成

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase();
正确代码:

var Number = Math.random()
Number = Number * 10;
Number = Math.round(Number);
var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0;

console.log (Number);

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase();

console.log(userInput);

if (Number == 0) {
    Number = "scissors";
} if (Number == 1){
    Number = "stone";
} if (Number == 2){
    Number = "paper";
}



if (Number == userInput ){
        alert("TIE");
} else if (Number == "scissors" && userInput == "paper"){
    alert("Scissors Win\'s");
}   else if (Number == "scissors" && userInput == "stone"){
    alert("Stone Win\'s");
}   else if (Number == "paper" && userInput == "scissors"){
    alert("Scissors Win\'s");
}   else if (Number == "paper" && userInput == "stone"){
    alert("Paper Win\'s");
}   else if (Number == "stone" && userInput == "scissors"){
    alert("Stone Win\'s");
}   else if (Number == "stone" && userInput == "paper"){
    alert("Paper Win\'s");
}

您的主要错误在这一行:

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase;
我修复了这个问题,只调用了.toLowerCase,我还更新了变量名,使其不是全局对象,我还清理了您的数学和变量重新关联,因为您在这两个地方都编写了不必要的代码。代码如下,您可以检查小提琴:


检查控制台是否有错误no errors:@tymejvp请创建一个再现该问题的JSFIDLE。首先,您不应该使用Number作为变量名,因为它已经是一个现有的全局对象。将我的答案改为注释:调用toLocaleLowerCase,即toLocaleLowerCase结尾作为打字错误
var num = Math.random()
num = num * 10;
num = Math.round(num);
num = Math.floor(Math.random() * (2 + 1));

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase();

if (num == 0) {num = "scissors";}
if (num == 1){num = "stone";}
if (num == 2){num = "paper";}

if (num == userInput ){alert("TIE");}
else if (num == "scissors" && userInput == "paper"){alert("Scissors Win's");}
else if (num == "scissors" && userInput == "stone"){alert("Stone Win's");}
else if (num == "paper" && userInput == "scissors"){alert("Scissors Win's");}
else if (num == "paper" && userInput == "stone"){alert("Paper Win's");}
else if (num == "stone" && userInput == "scissors"){alert("Stone Win's");}
else if (num == "stone" && userInput == "paper"){alert("Paper Win's");}