javascript - 比较数字总是返回 false
问题描述
我生成一个带有间隔的随机数,然后检查用户选择的数字是否相同,但它总是返回 false
const checkButton = document.getElementById("checkButton");
var rndNumber = RandomNumberGenerator();
checkButton.onclick = CheckNumber;
console.log("rndNumber", rndNumber);
function CheckNumber(rndNumber) {
var numberChoosed = document.getElementById("numberChoosed").value;
console.log("rndNumber", rndNumber)
console.log("numberChoosed", numberChoosed);
if (numberChoosed == rndNumber) {
console.log("true");
} else {
console.log("False");
}
}
function RandomNumberGenerator() {
var min = document.getElementById("bottomNumber").value;
var max = document.getElementById("topNumber").value;
return Math.round(Math.random() * (max - min) + min);
}
<button type="button" id="checkButton">Click</button>
<input id="numberChoosed" />
<input id="bottomNumber" value="1"/>
<input id="topNumber" value="110"/>
解决方案
删除rndNumber
fromfunction CheckNumber(rndNumber) {
因为那实际上是 checkButton 上的点击事件
转换为数字也是一个好主意,因为.value
它是一个字符串。
意志为你铸造,==
但它不再取决于你
const checkButton = document.getElementById("checkButton");
var rndNumber = RandomNumberGenerator();
checkButton.onclick = CheckNumber;
console.log("rndNumber", rndNumber);
function CheckNumber() {
var numberChoosed = document.getElementById("numberChoosed").value;
console.log("rndNumber", rndNumber)
console.log("numberChoosed", numberChoosed);
console.log(+numberChoosed === +rndNumber); // cast to number
}
function RandomNumberGenerator() {
var min = document.getElementById("bottomNumber").value;
var max = document.getElementById("topNumber").value;
return Math.round(Math.random() * (max - min) + min);
}
<button type="button" id="checkButton">Click</button>
<input id="numberChoosed" />
<input id="bottomNumber" value="1"/>
<input id="topNumber" value="110"/>
推荐阅读
- reactjs - 使用 Jest / Enzyme 和 Axios 测试 React Hooks 组件
- html - 如何在节点 js 中使用 pug 模板引擎?
- python - 作为屏幕进程运行的 Python 脚本在 Ubuntu / AWS EC2 上被“杀死”
- reactjs - How do I get the Id when clicked on the first row in React JS?
- java - 在二叉搜索树中递归查找后代的问题
- python - 计算文本文件中长度≥7的所有回文子串
- android - Jetpack Compose 导航结果
- javascript - 更改嵌入组件的 prop 值
- sql - 按 ID 分组,其中同一 ID 用于多天的不同对象
- python - 无法使用 Selenium(Python)按类名找到 div