Javascript 返回值不正确
我正在尝试创建一个简单的猜测游戏,我的返回值或功能似乎是正确的。我有console.logged typeof作为输入值和randNum值,它们都是数字。然而,我的警告总是不正确的。我做错了什么Javascript 返回值不正确,javascript,Javascript,我正在尝试创建一个简单的猜测游戏,我的返回值或功能似乎是正确的。我有console.logged typeof作为输入值和randNum值,它们都是数字。然而,我的警告总是不正确的。我做错了什么 var currentGuess = false; var randNum = Math.floor(Math.random() * 100) var input = document.getElementById("guess").value; var input = parseInt(input);
var currentGuess = false;
var randNum = Math.floor(Math.random() * 100)
var input = document.getElementById("guess").value;
var input = parseInt(input);
var btn = document.getElementById("submit");
var results = document.getElementById("results");
console.log(randNum);
function check() {
checkNum(input, randNum);
if( input === randNum) {
alert("correct");
} else {
alert("incorrect");
}
}
function checkNum(guess, actualNum) {
currentGuess = false;
if(guess === actualNum) {
return true;
}
return currentGuess;
}
btn.addEventListener("click", check, false);
调用check时,您没有再次接受输入 只需将其添加到check函数中
input = parseInt(document.getElementById("guess").value);
像这样
function check() {
input = parseInt(document.getElementById("guess").value);
checkNum(input, randNum);
if( input === randNum) {
alert("correct");
} else {
alert("incorrect");
}
}
摆弄工作解决方案: 您正在侦听对输入的点击,但在加载所有内容时获得输入值,这是空的-返回input=NaN。当用户单击时,此值不会更新:
var randNum, btn, results;
// Generate random number.
randNum = Math.floor( Math.random() * 100 );
// Submit button to listen for click events on.
btn = document.getElementById( 'submit' );
// Display result one at a time in #results.
results = document.getElementById( 'results' );
// Number to guess.
console.log( 'Random number: ' + randNum );
// Check the input on click of #submit
function check() {
var input = parseInt( document.getElementById( 'guess' ).value, 10 );
if ( input === randNum ) {
results.innerHTML = '<p class="correct">' + input + ' is correct!</p>';
} else {
results.innerHTML = '<p class="incorrect">' + input + ' is not correct!</p>';
}
}
// Add event listener for #submit
btn.addEventListener( 'click', check, false );
var randNum,btn,结果;
//生成随机数。
randNum=Math.floor(Math.random()*100);
//“提交”按钮以侦听单击事件。
btn=document.getElementById('submit');
//在#结果中一次显示一个结果。
结果=document.getElementById('results');
//要猜的数字。
log('Random number:'+randNum);
//点击#提交检查输入
函数检查(){
var input=parseInt(document.getElementById('guess')。值,10);
如果(输入===randNum){
results.innerHTML=''+input+'是正确的!
';
}否则{
results.innerHTML=''+input+'不正确!
';
}
}
//为#提交添加事件侦听器
btn.addEventListener('click',check,false);
作为一种良好的做法,您应该输入type=“number”。
您还应该声明parseInt()的基数。请尝试以下操作:
<html>
<head>
</head>
<body>
<input type="text" id="guess"><br>
<input type="button" id="submit" value="check"><br>
<div id="results"></div>
<script>
var currentGuess = false;
var randNum = Math.floor(Math.random() * 100)
var btn = document.getElementById("submit");
var results = document.getElementById("results");
console.log(randNum);
function check() {
var input = document.getElementById("guess").value;
var input = parseInt(input);
if( input === randNum) {
alert("correct");
} else {
alert("incorrect");
}
}
btn.addEventListener("click", check, false);
</script>
</body>
var currentGuess=false;
var randNum=Math.floor(Math.random()*100)
var btn=document.getElementById(“提交”);
var results=document.getElementById(“结果”);
console.log(randNum);
函数检查(){
var输入=document.getElementById(“猜测”).value;
var输入=parseInt(输入);
如果(输入===randNum){
警惕(“正确”);
}否则{
警告(“不正确”);
}
}
btn.addEventListener(“单击”,检查,错误);
请描述您得到的输出和期望值。checkNum函数的作用是什么?您对返回值不做任何处理。谢谢您的回答是正确的,但是如果我已经做了一个全局var,为什么我必须这样做呢?感谢您已声明为全局变量。这就是为什么你可以访问边界内的任何地方。但是,当您按“单击”时,它将保留第一次使用的先前值。为了获得最新的值,您必须再次输入@user8280738@JapanGuy我理解他们的不同之处这两种类型都必须匹配。但正如我所说,我已经声明了一个全局变量,它将输入的字符串值解析为一个数字。我只是想理解为什么我必须在我的函数中重新声明它。@user8280738实际上你没有再次声明。您只是再次输入
。value
是一种值类型。当textbox更新@user8280738时,它不会更改