Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回值不正确_Javascript - Fatal编程技术网

Javascript 返回值不正确

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);

我正在尝试创建一个简单的猜测游戏,我的返回值或功能似乎是正确的。我有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 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时,它不会更改