javascript - 即使我的猜测等于随机数,代码仍然给我“你输了”
问题描述
好心检查。即使我的“猜测”等于 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")
}
解决方案
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
推荐阅读
- node.js - Mongoose 模型名称作为变量
- angular - 有一个终端可见的文件,但在 Visual Studio 代码中的文件结构中不可见
- flutter - 如何在 Flutter 包中使用 cocoapods 依赖项?
- c# - NewtonSoft 从 XML 到 JSON
- javascript - 用于从 REST 网络服务传入的 JSON 响应的正则表达式验证器
- powershell - 不创建配置文件的 New-PsSession?
- javascript - 使用 javascript 在屏幕中间显示弹出窗口
- kubernetes - 运行一组具有不同配置的 pod 以与 kafka 交互的架构
- vba - 使用 VBA Outlook 打开点击标签上的 URL
- python - pytest,检索调用夹具的测试