Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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_Function_Undefined - Fatal编程技术网

Javascript函数在未定义中转换我的值。我和我的老师做';我不明白为什么

Javascript函数在未定义中转换我的值。我和我的老师做';我不明白为什么,javascript,function,undefined,Javascript,Function,Undefined,我今天在这里是因为我有一个错误,我(和我的老师)不理解javascript 下面的代码只是一个函数的阶乘(强制使用函数)。但返回时,我的值在未定义中更改 var检验; 做{ var result=parseInt(提示(“unchiffre supérieurá1”); }而(isNaN(result)| | result1,我们通过再次进入函数继续计算// 控制台日志(chiffre); 事实(chiffre,事实); } }您必须返回递归调用,否则事实的第一次调用将永远不会遇到返回语句,导

我今天在这里是因为我有一个错误,我(和我的老师)不理解javascript

下面的代码只是一个函数的阶乘(强制使用函数)。但返回时,我的值在未定义中更改

var检验;
做{
var result=parseInt(提示(“unchiffre supérieurá1”);
}而(isNaN(result)| | result<2);
//只要问一个大于1的数字就行了//
测试=事实(结果,1);
控制台日志(测试);
//测试变量用于尝试理解错误//
功能事实(chiffre,事实){
//阶乘函数//
事实=事实*chiffre;
//事实第一次被定义为1,对其他人来说这将是他最后的结果//`
console.log(事实);
chiffre=chiffre-1;
//在下一段中,我们把奇弗尔降价一//
如果(chiffre==1){
//若chiffre=1,我们不需要做其他的过程,所以我们返回值
console.log(事实);
返回事实;
//结果是正确的,它是一个数字。但是它返回未定义//
}否则{
//如果chiffre>1,我们通过再次进入函数继续计算//
控制台日志(chiffre);
事实(chiffre,事实);
}

}
您必须返回递归调用,否则
事实
的第一次调用将永远不会遇到
返回
语句,导致第一次调用(默认情况下)返回未定义的
。更改为
返回事实(chiffre,事实)

var检验;
做{
var result=parseInt(提示(“unchiffre supérieurá1”);
}而(isNaN(result)| | result<2);
测试=事实(结果,1);
控制台日志(测试);
功能事实(chiffre,事实){
事实=事实*chiffre;
chiffre=chiffre-1;
如果(chiffre==1){
返回事实;
}否则{
返回事实(chiffre,事实);
}

}
递归调用丢失
return
。您应该有
返回事实(chiffre,fact)在最后。@NiettheDarkAbsol你的话有点太绝对了。老师不是天才,有时不会注意到我们注意到的简单的事情。这只是人类,谢谢。我明白。是的,老师也是人,可以像我们一样错过一些事情;)!