首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript记忆游戏拼图

Javascript记忆游戏拼图
EN

Stack Overflow用户
提问于 2014-03-11 14:42:54
回答 3查看 303关注 0票数 3

我正在编码一个记忆游戏,允许一个警报与一个5-6数字的代码闪现,然后你必须记住,并放置在一个提示框。下面是我到目前为止掌握的代码:

代码语言:javascript
复制
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")
    }

我的代码的问题是,即使正确的警报说错了,我认为这是因为当我检查变量是否相等时,数学随机生成一个新的数字。我想知道我能不能帮上忙。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-11 14:46:07

问题是answer是字符串,mathRandom是数字。您使用的是===,它不强制类型。您需要将answer转换为一个数字,然后进行比较:

代码语言:javascript
复制
if (+answer === mathRandom) {
    alert("Well Done");
}

或者:

代码语言:javascript
复制
if (parseInt(answer) === mathRandom) {
    alert("Well Done");
}

或者您只需使用==操作符:

代码语言:javascript
复制
if (answer == mathRandom) {
    alert("Well Done");
}

它将自动将mathRandom中的数字转换为字符串。

也请参阅这个问题:Which equals operator (== vs ===) should be used in JavaScript comparisons?

更好地理解=====的区别

票数 3
EN

Stack Overflow用户

发布于 2014-03-11 14:47:16

===检查变量的值和类型。数学函数生成数字,提示符生成字符串。这就是为什么变量总是不相等的原因。

用只检查值的==代替它--您的代码就可以工作了。

演示: http://jsfiddle.net/Bx7W8/

票数 1
EN

Stack Overflow用户

发布于 2014-03-11 14:48:06

您需要将提示符的结果转换为数字。现在,您正在用字符串和数字进行比较。

在JavaScript中:

代码语言:javascript
复制
750 !== "750";
750 === parseInt("750", 10);

以下是解决办法:

代码语言:javascript
复制
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")
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22329076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档