繁体   English   中英

Javascript function 返回前一个值或未定义

[英]Javascript function returns previous value or undefined

第5次学习javascript,基本编码背景和老外(母语不是英语,所以找不到正确答案)。

我有一个基本的 function,我想返回用户输入的值:

var number = ' ';
function askNumber(){
    number = parseInt(prompt('Type a number :'));
    if (isNaN(number)){
        askNumber();

    }else{
        return number;
    }
}

console.log(askNumber());

当您第一次输入字符时,它会再次调用 function。 如果您第二次键入一些数字,则 function 将返回“未定义”。

--

现在,如果我添加 if/else 以在数字大于 999 且小于 0 时调用 function,那么如果我输入一个更大的数字,然后输入正确的数字,则返回更大的数字。

一旦再次调用 function ,返回语句似乎不会返回正确的值......递归?

如何确保

返回号码;

返回用户输入的最后一个值?

这不是故意的。 您正在调用 function 但未返回值

 var number = ' '; function askNumber(){ number = parseInt(prompt('Type a number:')); if (isNaN(number)){ // Notice the return statement: return askNumber(); } else { return number; } /* You could change the above if...else to: return isNaN(number)? askNumber(): number; */ } console.log(askNumber());

解决意见

 function addOne(n) { return n + 1; // No matter what n is, it returns n + 1; } function addTwo(n) { let newN = addOne(n); // the return value of addOne comes HERE. let newNewN = addOne(newN) // Again, the return value comes here. return newNewN; } console.log(addTwo(1));

你忘记了return声明。

var number = ' ';
function askNumber2(){
    number = parseInt(prompt('Type a number :'));
    if (isNaN(number)){
        return askNumber();
    } else {
        return number;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM