JavaScript阶乘函数无输出排查:非函数形式正常,函数形式失效
问题分析:阶乘函数无输出的原因
嘿,我一眼就发现问题所在啦——你的阶乘函数确实完成了计算,但没有把结果返回出来!
咱们来拆解一下:
- 非函数版本里,
text是全局变量,计算完成后你可以直接查看这个变量的值,所以能得到120; - 但在函数版本里,
text是函数内部的局部变量,函数执行结束后,这个变量就被“封装”起来了,外部根本拿不到它的值。而且你没有用return语句把计算结果传递出去,所以调用factorialize(5)的时候,函数默认返回undefined,自然看不到结果,也不会报错(因为语法完全没问题)。
只需要给函数加一行返回语句就搞定了:
function factorialize(num) { var text = 1; var i; for (i = 1; i < num + 1; i++) { text *= i; } // 新增返回语句,把计算结果传递出去 return text; } // 调用时可以用console.log打印结果 console.log(factorialize(5)); // 输出120
另外小建议:变量名可以更语义化一点,比如把text改成result或者factorial,这样代码可读性会更好哦~
内容的提问来源于stack exchange,提问作者deBhailis
相关产品推荐
相关产品推荐

