代码中的JavaScript未知错误
所以我做了一个简单的猜谜游戏,数字从1到10。问题是,每当我猜对数字时,它仍然说我弄错了。这是程序的源代码。(这是源代码的正确含义吗?)代码中的JavaScript未知错误,javascript,html,Javascript,Html,所以我做了一个简单的猜谜游戏,数字从1到10。问题是,每当我猜对数字时,它仍然说我弄错了。这是程序的源代码。(这是源代码的正确含义吗?) 第一个正确的HTML页面 你好,世界 这是我的第一个网站 它非常有趣和令人兴奋 var randomNumber=数学楼层(数学随机(100)*11); //控制台日志(随机编号); var guess=提示(“请猜一个数字1-10”); 如果(猜测===随机数){ 警报(“您赢了!号码是”+randomNumber); }否则{ 警报(“您猜错了数字,真
第一个正确的HTML页面
你好,世界
这是我的第一个网站
它非常有趣和令人兴奋
var randomNumber=数学楼层(数学随机(100)*11);
//控制台日志(随机编号);
var guess=提示(“请猜一个数字1-10”);
如果(猜测===随机数){
警报(“您赢了!号码是”+randomNumber);
}否则{
警报(“您猜错了数字,真实数字是”+随机数字);
}
您使用的是严格比较(==),这将评估值和类型是否相等,我相信您应该在guess
中使用parseInt
,如下所示:
if(parseInt(guess) === randomNumber){
这是一个严格的比较:
if(guess === randomNumber)
如果变量的类型不同,则返回false
在代码中,guess
是一个字符串,因为它是prompt()
的结果<代码>随机数是一个数字。由于字符串和数字的类型不同,因此它将始终返回false
您可以通过将if
条件更改为:
if(guess == randomNumber)
这将导致JavaScript强制guess
为一个数字
或者,您可以通过使用parseInt()
,parseFloat()
,或者简单地在guess
前面加一个加号来强制执行强制:
if(+guess === randomNumber)
将===更改为==。这应该会有帮助。提示中的数字是字符串,因此无法与三等号进行比较 (==)用于相同类型的变量,例如
true
及
解决方案是,您需要使用(=)来说明变量是否等于另一个变量。当您编写代码时,请注意缩进,当您或其他人阅读代码时,缩进会有很大帮助 无论如何,这应该可以做到,你做错的基本上是你调用随机函数的方式 而且==运算符应该足够了,因为您只是比较值,==表示相等值和相等类型
var randomNumber = Math.floor((Math.random() * 10) + 1);
console.log(randomNumber);
var guess = prompt("Please guess a number 1 - 10");
if(guess == randomNumber){
alert("You have won! The number was " + randomNumber);
}else{
alert("You have guessed the wrong number, the real number was " + randomNumber);
}
guess===randomNumber
这里您要做的是严格的检查。randonNumber的类型是数字,guess是字符串。在严格检查模式下,数据类型不会转换。像这样尝试guess==randomNumber
将guess==randomNumber更改为仅使用==而不是==。另外,确保类型匹配。输入可能以字符串的形式输入,但您需要将其与整数进行比较。在猜测的周围放一个parseInt,这样它们都是整数类型。记得更准确地命名问题。我不知道为什么它会被否决。这似乎是一个合理的问题。最近有很多人投了反对票。
false
var randomNumber = Math.floor((Math.random() * 10) + 1);
console.log(randomNumber);
var guess = prompt("Please guess a number 1 - 10");
if(guess == randomNumber){
alert("You have won! The number was " + randomNumber);
}else{
alert("You have guessed the wrong number, the real number was " + randomNumber);
}