[英]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.