我正在编写一个记忆游戏,它允许警报以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
{
alert("Wrong")
}
我的代码的问题在于,即使正确无误,警报也会说错了,我认为这是因为当我检查变量是否相等时,mathrandom会生成一个新数字。我想知道是否能有所帮助。
谢谢
最佳答案
问题在于answer
是字符串,而mathRandom
是数字。您正在使用不强制类型的===
。您需要将answer
转换为数字,然后进行比较:
if (+answer === mathRandom) {
alert("Well Done");
}
要么:
if (parseInt(answer) === mathRandom) {
alert("Well Done");
}
或者,您可以只使用
==
运算符:if (answer == mathRandom) {
alert("Well Done");
}
它将自动将
mathRandom
中的数字转换为字符串。另请参阅此问题:Which equals operator (== vs ===) should be used in JavaScript comparisons?
为了更好地了解
==
和===
之间的区别