Javascript内存游戏难题
我正在编写一个记忆游戏,让一个警报以5-6位数的代码闪现,然后你必须记住并放入提示框。以下是我目前掌握的代码:Javascript内存游戏难题,javascript,Javascript,我正在编写一个记忆游戏,让一个警报以5-6位数的代码闪现,然后你必须记住并放入提示框。以下是我目前掌握的代码: var mathRandom = (Math.round(Math.random()*10000)) alert(mathRandom); var answer=prompt("What is the number?"); if(answer === mathRandom) { alert("Well done") } else {
var mathRandom = (Math.round(Math.random()*10000))
alert(mathRandom);
var answer=prompt("What is the number?");
if(answer === mathRandom)
{
alert("Well done")
}
else
{
alert("Wrong")
}
我的代码的问题是,即使你做对了,警报也会说错误,我认为这是因为当我检查变量是否相等时,mathrandom会生成一个新的数字。我想知道我是否能得到一些帮助。
谢谢问题在于
答案
是一个字符串,mathRandom
是一个数字。您使用的是不强制类型的==
。您需要将答案
转换为一个数字,然后比较:
if (+answer === mathRandom) {
alert("Well Done");
}
或:
或者您可以使用=
操作符:
if (answer == mathRandom) {
alert("Well Done");
}
它将自动将mathRandom
中的数字转换为字符串
另见这个问题:
为了更好地理解
=
和==
==
之间的差异,请检查变量的值和类型。数学函数生成数字,而提示符生成字符串。这就是变量总是不相等的原因
将其替换为只检查值的==
,您的代码将正常工作
演示:您需要将提示结果转换为数字。现在,您正在使用字符串和数字进行比较 在JavaScript中:
750 !== "750";
750 === parseInt("750", 10);
以下是修复方法:
var mathRandom = Math.round(Math.random() * 10000);
alert(mathRandom);
var answer = parseInt(prompt("What is the number?"), 10);
if (answer === mathRandom)
{
alert("Well done")
}
else
{
alert("Wrong")
}
@如果解决方案对您有效,请接受答案。
var mathRandom = Math.round(Math.random() * 10000);
alert(mathRandom);
var answer = parseInt(prompt("What is the number?"), 10);
if (answer === mathRandom)
{
alert("Well done")
}
else
{
alert("Wrong")
}