我试图在网页上编写脚本,向用户显示算术问题(EG为2 + -4)并使用提示询问答案。然后使用警报框给他们反馈。整数必须介于-10到10之间,到目前为止,我已经尝试了这个并且没有运气:
var num = Math.Floor((Math.random() * -10) + 10);
var numPrompt = prompt("what is " + (num + num));
alert(numPrompt);
然后我尝试了:
var num = Math.Floor((Math.random() * -10) + 10);
var numPrompt = prompt( "what is " + (parseInt(num) + parseInt(num)) );
alert(numPrompt);
都失败了,但为什么?
答案 0 :(得分:2)
这类似于你想要的东西:
var num1 = Math.floor((Math.random() * -21) + 11);
var num2 = Math.floor((Math.random() * -21) + 11);
var userAnswer = prompt('What is ' + num1 + ' + ' + num2 + '?');
if (userAnswer.trim() !== '' && +userAnswer === num1 + num2) {
alert('Correct');
} else {
alert('Wrong');
}
由于num1和num2是由Javascript生成的数字,我们可以简单地将数字+ userAnswer与num1 + num2进行比较。
执行+ userAnswer的原因是userAnswer变量包含提示函数返回的答案,这是一个字符串,因此在其前面添加一个+符号将其转换为数字。
我喜欢+ userAnswer多于parseInt因为parseInt('5a')返回5,而''5a'返回0。
我们唯一需要注意的是+'或+''返回0,所以我们必须做一个额外的检查,以确保用户不只是输入而不键入数字。