随机数字猜谜游戏问题:无法提示答案是否正确
问题分析与修复方案
让我帮你揪出这个猜数字游戏没法正常运行的问题,其实都是几个容易忽略的小细节在搞鬼:
变量名用错了:你在
if判断里写的是input == number,但你明明把用户输入的值存在numberSelected变量里了啊!input是你通过getElementById拿到的DOM元素对象,不是输入的具体数值,这个判断永远不可能成立,自然不会触发成功的提示。else语法完全错误:你写的
else("noup not now");根本不是合法的JavaScript语法,else后面必须跟着代码块(用大括号{}包裹)或者单条执行语句。正确的写法应该是else { alert("noup not now"); },不然这部分代码不仅不会执行,还会悄悄打断逻辑。类型不匹配的隐患:输入框的
value属性返回的是字符串类型,而你生成的随机数number是数字类型。虽然==会做隐式类型转换,但有时候会出现意料之外的结果,最好显式把输入值转成数字,比如用parseInt()或者Number()。
下面是修复后的完整代码:
修正后的JavaScript代码
document.getElementById("checknumber").onclick = function() { // 获取输入值并转换为数字类型 var numberSelected = parseInt(document.getElementById("input").value); var number = Math.floor((Math.random() * 6) + 1); if (numberSelected == number) { alert("got it"); } else { alert("noup not now"); } }
HTML代码(无需修改)
<p>Guess the number: </p> <p><input id="input"> </p> <p><button id="checknumber">Check !</button></p>
另外提醒一下,以后遇到这类问题可以打开浏览器的开发者工具(按F12),查看控制台的错误信息——很多时候表面看起来没报错,但语法或逻辑错误其实都记录在那里,能帮你快速定位问题。
内容的提问来源于stack exchange,提问作者Jan Zaplatil
相关产品推荐
相关产品推荐

