Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成1-100之间的整数_Javascript_Jquery - Fatal编程技术网

Javascript 生成1-100之间的整数

Javascript 生成1-100之间的整数,javascript,jquery,Javascript,Jquery,这应该会产生一个介于1-100之间的整数,我相信代码是正确的,但是如果用户尝试猜测计算机选项,它似乎会生成一个十进制数,这会破坏游戏 问题:我是否需要调整我写这篇文章的方式,使它在我的代码中工作 userChoice是字符串,computerChoice是数字 userChoice = parseInt($(this).text(),10); 通过将userChoice字符串转换为整数,确保正在进行数字比较(而不是字母比较): userChoice = parseInt($(this).te

这应该会产生一个介于1-100之间的整数,我相信代码是正确的,但是如果用户尝试猜测计算机选项,它似乎会生成一个十进制数,这会破坏游戏

问题:我是否需要调整我写这篇文章的方式,使它在我的代码中工作


userChoice是字符串,computerChoice是数字

userChoice = parseInt($(this).text(),10);

通过将userChoice字符串转换为整数,确保正在进行数字比较(而不是字母比较):

userChoice = parseInt($(this).text(), 10);

这将如何生成十进制数?通过使用
userChoice==computerChoice
而不是
=
进行修复。显然,类型不匹配
computerChoice
是一个数字,我没有查看
userChoice
来自哪里,但它是一个字符串您可能需要自己关闭问题:)当您从DOM中读取
textContent
时,它将是一个字符串。您生成的是一个数字。因此,当您对它们执行
==
操作时,也会检查它们是否是相同的类型,这显然是失败的。提示:学习在浏览器中使用控制台/调试器(所有现代浏览器都有),否则您将完全迷失方向,甚至找不到像这样最简单的bug。千万不要像这样使用
parseInt
。始终指定第二个参数。另外,Javascript中没有
int
类型。@卡帕真的不明白为什么从来不这样使用parseInt?第二个参数就是基数,如果我们只关心十进制基数,默认情况下它是
10
,因此我们不需要将
10
作为第二个参数传递。看起来这是支持旧版本浏览器的原因,而默认基数是
8
。不知道这些版本有多旧。@KingKing IE8肯定犯了这个错误,我不知道旧的Android浏览器。现代浏览器默认使用10。不过,只包含第二个参数更容易、更安全。它不会引起任何问题,但在某些情况下它可以救你的命:)。注意:删除了我的否决票。是的,如果它以0开头,它将被视为八进制。Javascript严格模式将此行为更改为默认值16(如果它以“0x”开头),否则它总是10,但显然您不应该相信所有浏览器都会遵守这一点。始终设置基数参数。我在日期验证代码中犯了这个错误,该代码在8月份不知何故停止工作。:)
userChoice = parseInt($(this).text(), 10);