NaN消息,即使在递归函数中所有的Javascript工作似乎都很好



我写了一些javascript代码,在其中我制作了一个递归函数。我期望一个数值,但是我收到了一个NaN。我该如何解决这个问题?

<script language="javascript">
    function toperform()
    {
        var proceed=confirm("Do you want to proceed?");
        if (proceed==true)
        {
            var a = checknum("num1");
            var b = checknum("num2");
            alert("The sum is "+(a+b));                                             
        }
        else
        {
            alert("You chose not to proceed!");
        }
    }
    function checknum(arg)
    {
        var num=parseInt(prompt("Enter "+arg));                                     
        if (isNaN(num))
        {
            alert("Please enter a valid number");
            num=checknum(arg);
        }
        return num;
    }
</script>

我认为这更具语义,重复直到得到有效的数字,但不是递归

function checknum(arg)
    {
        var num = null ; 
        while (isNaN(num))
        {
            if (num != null)
                alert("Please enter a valid number");   
            var input = prompt("Enter "+arg);
            num = parseInt(input);              
        }
        return num;
    }

最新更新