gpt4 book ai didi

javascript - 递归提示返回undefined

转载 作者:搜寻专家 更新时间:2023-11-01 05:21:17 24 4
gpt4 key购买 nike

今天早上,当我试图实现一个无休止的提示系统时,我注意到了一些很奇怪的事情。

以下代码在 2 种情况下返回 2 种不同的输出:

场景 1:在第一次提示时输入数字并确定

输出 1: 输入的数字


场景二:先取消提示再输入数字确定

输出 2: 未定义


我很困惑为什么会这样。首先,当我在 if 语句中检查它时,它如何返回 undefined ?其次,我的印象是,在 JavaScript 中,undefined 意味着变量已声明但尚未分配,在这种情况下,我正在分配 var number

var number = null;
number = Prompt();
$("p").html("Number was " + number);

function Prompt()
{
var input = prompt("Enter a number", "");
if(input === null || input === "" || input === undefined || isNaN(input))
Prompt();
else
return input;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<p></p>

最佳答案

只有一个代码路径返回一个值,使其从递归调用中返回。在 JavaScript 中,如果函数结束时没有 return 语句,则它的返回值是 undefined

function Prompt()
{
var input = prompt("Enter a number", "");
if(input === null || input === "" || input === undefined || isNaN(input))
return Prompt();
else
return input;
}

关于javascript - 递归提示返回undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38258394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com