我正在使用网站提示创建一个简单的问题,但我遇到了问题。
我收到了这个脚本的两个错误,首先是“问题未定义”,
其次“缺失”在参数列表“我第一次提示任何想法之后?
<script>
var a = Math.floor((Math.random()*10)+1);
var b = Math.floor((Math.random()*10)+1);
var c = Math.floor((Math.random()*10)+1);
var wrong = 0;
function question()
{
for(x=1; x>10; x++)
{
prompt("Does" b"+"c " = ");
if(prompt.input == b + c)
{
question();
}else{
wrong++;
}
if(x==10)
{
alert("well you were wrong " + wrong" times");
}
}
}
</script>
答案 0 :(得分:2)
您缺少
参数中的所有+
prompt("Does" b"+"c " = ");
您必须使用+
来连接字符串:
prompt("Does " + b + "+" + c + " = ");
:{/ p>中缺少相同的+
alert("well you were wrong " + wrong" times");
使用:
alert("well you were wrong " + wrong + " times");
此外,您正在从内部调用question
。这不会导致语法错误,但在您的情况下几乎不需要。
此外,prompt.input
不起作用。它总是未定义的。使用提示调用的返回值:
var response = prompt( ... );
if(response == b+c){
...
此外,您只是初始化一次随机变量。也许你想在每个循环中有一个新的对(除非递归是为了那个)。感谢@Asad注意到。
答案 1 :(得分:1)
您似乎在几个地方跳过连接运算符。正确的版本看起来像这样:
prompt("Does " + b + "+" + c + " = ");
再次,在这里:
alert("well you were wrong " + wrong + " times");
此外:
question
不需要递归(您已经在使用循环)以下是更正后的版本:
var a = Math.floor((Math.random()*10)+1);
var b = Math.floor((Math.random()*10)+1);
var c = Math.floor((Math.random()*10)+1);
var wrong = 0;
function question()
{
for(x=1; x>10; x++)
{
b = Math.floor((Math.random()*10)+1);
c = Math.floor((Math.random()*10)+1);
prompt("Does " + b + "+" + c + " = ");
if(prompt.input != b + c)
wrong++;
}
alert("well you were wrong " + wrong + " times");
}
答案 2 :(得分:0)
var f1 = alert("well you were wrong " + wrong + " times");
alert
没有'返回一个值。
缺少字符串连接:
"Does" b"+"c " = "
"Does"+ b + "+" + c + " = "
(我建议检查所有字符串)
此外,随着你的循环中的循环,你正在生成一个无限循环: (稍微简化)
function question(){
for(x=1; x>10; x++){
question();
}
}
每次拨打question();
时,您都会拨打question();
10次。
答案 3 :(得分:0)
question is not defined
表示您的函数question
在被浏览器实际读取之前被调用。
确保仅在触发window.ready事件后才执行主JS代码。
window.onready = function(){
//Here your starting code goes
}
答案 4 :(得分:0)
首先,字符串的连接存在错误。应该像
prompt("Does" +b+c+" = ");
alert("well you were wrong " + wrong+" times");
其次,你经常使用函数question();
而没有升值,这会创建一个循环