Javascript:为什么我的值不相等?

标签 javascript

<分区>

var check = true;
var number = Math.floor(Math.random() * 20);

while (check === true){
var guess = prompt("I picked a number 0 to 20, try to guess it!");
if (number === guess) {
    print("You guessed correctly! Good job!"); 
    check = false;
}
else if (number < guess) {
    print("\n\You guessed too high!"); 
}
else if (number > guess) {
    print("\n\You guessed too low!"); 
}
else {
    print("\n\Error. You did not type a valid number");
    exit(); 
}
    print("\n\Guess: " + guess + ".");
}  

当我尝试运行这个程序时,我一直找到正确答案,但它不起作用!即使随机生成的数字是 13,我猜是 13,它也会通过并说它无效。

最佳答案

你猜是一个字符串。这是用户输入的文本,您需要将其转换为数字以便能够将其与您的猜测进行比较,因此替换

var guess = prompt("I picked a number 0 to 20, try to guess it!");

var guess = Number(prompt("I picked a number 0 to 20, try to guess it!");

如果格式不正确,这会将用户的猜测变成数字或特殊值 NaN。

您还可以使用 == 运算符,它会自动在类型之间进行转换。如果您是 javascript 的新手,我建议您不要使用运算符,因为它可能会产生一些令人困惑和意外的行为。

关于Javascript:为什么我的值不相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45176181/

相关文章:

javascript - 检查对象 javascript 中是否存在嵌套属性

php mysql 和 javascript 加载冲突

javascript - angular4模式实验室

javascript - Node.js 客户端的 Adob​​e Analytics Segments API 身份验证问题

javascript - 加载时的窗口调度事件不适用于内联脚本

javascript - 定位麻烦

javascript - 将一个表的内容复制到另一个表中

javascript - JavaScript 中 new Object() 时发生了什么

javascript - 纯函数的参数数量不受支持

javascript - (看似)类中函数的冗余命名