Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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未知错误_Javascript_Html - Fatal编程技术网

代码中的JavaScript未知错误

代码中的JavaScript未知错误,javascript,html,Javascript,Html,所以我做了一个简单的猜谜游戏,数字从1到10。问题是,每当我猜对数字时,它仍然说我弄错了。这是程序的源代码。(这是源代码的正确含义吗?) 第一个正确的HTML页面 你好,世界 这是我的第一个网站 它非常有趣和令人兴奋 var randomNumber=数学楼层(数学随机(100)*11); //控制台日志(随机编号); var guess=提示(“请猜一个数字1-10”); 如果(猜测===随机数){ 警报(“您赢了!号码是”+randomNumber); }否则{ 警报(“您猜错了数字,真

所以我做了一个简单的猜谜游戏,数字从1到10。问题是,每当我猜对数字时,它仍然说我弄错了。这是程序的源代码。(这是源代码的正确含义吗?)


第一个正确的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);
}