首页 > 解决方案 > 即使我的猜测等于随机数,代码仍然给我“你输了”

问题描述

好心检查。即使我的“猜测”等于 targetNum,这段代码也会一直给我“你输了”。

let maximum = prompt("Tell us your maximum number");
const targetNum = Math.floor(Math.random() * maximum) + 1
console.log(targetNum)
let guess = prompt("Enter your first guess!");
if (guess === targetNum) {
  console.log("you win")
} else {
  console.log("you lose")
}

标签: javascript

解决方案


guess === targetNum

您正在使用严格相等运算符,这是一个很好的做法。它比较类型和值。它不进行转换。

您的问题是prompt()返回一个字符串,并且您将它与一个数字进行比较。尝试将其转换为这样的数字const guess = Number(prompt('Enter your first guess!'))

您可以在此处阅读有关类型转换的更多信息:

https://medium.com/swlh/typecasting-and-coercion-in-javascript-f0d59b0a86db https://dev.to/antonmelnyk/understanding-javascript-type-conversions-43n

您可以在此处阅读更多信息prompt()

https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt


推荐阅读