Javascript 当我运行这个时,我得到“TypeError:Number不是一个函数”

Javascript 当我运行这个时,我得到“TypeError:Number不是一个函数”,javascript,function,typeerror,Javascript,Function,Typeerror,这段代码中有我遗漏的东西吗?我觉得很好。。无论如何,正如我所说,当我运行这个时,我得到上面提到的TypeError。如果随机数低于.33,我试着得到纸,如果是.34-.66,我试着得到石头,如果是.67-1,我试着得到剪刀。var computerChoice=Math.random 创建编号类型的变量。在条件句中,您可以: 如果计算机选择0

这段代码中有我遗漏的东西吗?我觉得很好。。无论如何,正如我所说,当我运行这个时,我得到上面提到的TypeError。如果随机数低于.33,我试着得到纸,如果是.34-.66,我试着得到石头,如果是.67-1,我试着得到剪刀。

var computerChoice=Math.random

创建编号类型的变量。在条件句中,您可以:

如果计算机选择0<0.33


通过在computerChoice之后添加括号,JS解释器认为您试图用该名称调用函数,而实际上它是一个数字。

每当您使用Math.random时,它都会将变量设为数字,并尝试将其设为函数

您的代码应该如下所示:

var userChoice = prompt("Do you choose rock, paper, or scissors?")
var computerChoice = Math.random()
    if(computerChoice(0 < 0.33))  {
    computerChoice = ("Paper");
} else if(computerChoice(0.34 < 0.66)) {
    computerChoice = ("Rock");
} else {
    computerChoice = ("Scissors");
}
现在将随机数作为一个数字而不是一个函数进行比较

按照@Anthony Forloney更新了代码,您可以使用。此外,重复使用变量也不是一个好主意,因此:

var userChoice = prompt("Do you choose rock, paper, or scissors?")
var computerChoice = Math.random();
    if(computerChoice < 0.33)  {
    computerChoice = "Paper";
} else if(0.34 < computerChoice && computerChoice < 0.66) {
    computerChoice = "Rock";
} else {
    computerChoice = "Scissors";
}

虽然这样的小数舍入也会略微影响结果,但我认为没有人会注意到…

错误解释了一切,您使用变量computerChoice作为函数ie,computerChoice0<0.33多次。你认为computerChoice0<0.33应该做什么?字符串周围的括号是什么?它们将字符保持在一起并阻止它们漂移…好的,我删除了括号以获得computerChoice0<0.33,但它仍然给我一个错误,除了这是一个语法错误意外的数字你可能想告诉OP如何做正确的方式。这工作!我不知道您需要将它们排列为0.340.33但<0.34的位置呢?没有必要在else..if测试中进行第一次测试。
var userChoice = prompt("Do you choose rock, paper, or scissors?")
var num = Math.random();
var computerChoice = num < 0.33? "Paper" : num < 0.66? "Rock" : "Scissors";